日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python type help copyright_Python关于import的实验(8)__init__.py文件内部代码的执行以及内部的导入和内部的变量...

發(fā)布時(shí)間:2025/3/20 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python type help copyright_Python关于import的实验(8)__init__.py文件内部代码的执行以及内部的导入和内部的变量... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python官方文檔參考鏈接: 常規(guī)包

Python 定義了兩種類型的包,常規(guī)包 和 命名空間包。 常規(guī)包是傳統(tǒng)的包類型,它們在 Python 3.2 及之前就已存在。 常規(guī)包通常以一個(gè)包含 __init__.py 文件的目錄形式實(shí)現(xiàn)。 當(dāng)一個(gè)常規(guī)包被導(dǎo)入時(shí),這個(gè) __init__.py 文件會(huì)隱式地被執(zhí)行,它所定義的對象會(huì)被綁定到該包命名空間中的名稱。__init__.py 文件可以包含與任何其他模塊中所包含的 Python 代碼相似的代碼,Python 將在模塊被導(dǎo)入時(shí)為其添加額外的屬性。 例如,以下文件系統(tǒng)布局定義了一個(gè)最高層級的 parent 包和三個(gè)子包. 導(dǎo)入 parent.one 將隱式地執(zhí)行 parent/__init__.py 和 parent/one/__init__.py。 后續(xù)導(dǎo)入 parent.two 或 parent.three 則將分別執(zhí)行 parent/two/__init__.py 和 parent/three/__init__.py。

parent\__init__.py:

print("導(dǎo)入parent包...內(nèi)部已經(jīng)導(dǎo)入random庫")

str_parent = r"我是parent\__init__.py里的字符串..."

import random

parent\two\__init__.py:

print("導(dǎo)入parent/two包...內(nèi)部已經(jīng)導(dǎo)入time庫")

str_parent_two = r"我是parent\two\__init__.py里的字符串..."

import time

parent\three\__init__.py:

print("導(dǎo)入parent/three包...內(nèi)部已經(jīng)導(dǎo)入jieba庫")

str_parent_three = r"我是parent\three\__init__.py里的字符串..."

import jieba

parent\one\__init__.py:

print("導(dǎo)入parent/one包...內(nèi)部已經(jīng)導(dǎo)入hashlib庫")

str_parent_one = r"我是parent\one\__init__.py里的字符串..."

import hashlib

cmd控制臺下的操作:

Windows PowerShell

版權(quán)所有 (C) Microsoft Corporation。保留所有權(quán)利。

嘗試新的跨平臺 PowerShell https://aka.ms/pscore6

PS C:\Users\chenxuqi\Desktop\新建文件夾\測試包> python

Type "help", "copyright", "credits" or "license" for more information.

>>> import parent

導(dǎo)入parent包...內(nèi)部已經(jīng)導(dǎo)入random庫

>>> parent.str_parent

'我是parent\\__init__.py里的字符串...'

>>> random

Traceback (most recent call last):

File "", line 1, in

NameError: name 'random' is not defined

>>> parent.random

>>> parent.random.randint(2,7)

7

>>> parent.random.randint(2,7)

7

>>> parent.random.randint(2,7)

7

>>> parent.random.randint(2,7)

7

>>> parent.random.randint(2,7)

7

>>> parent.random.randint(2,9)

5

>>> parent.random.randint(2,9)

2

>>> parent.random.randint(2,9)

3

>>> parent.random.randint(2,9)

8

>>> parent.random.randint(2,7)

5

>>> parent.random.randint(2,7)

2

>>> parent.random.randint(2,7)

5

>>> parent.random.randint(2,7)

6

>>> import parent.two

導(dǎo)入parent/two包...內(nèi)部已經(jīng)導(dǎo)入time庫

>>> parent.two.str_parent_two

'我是parent\\two\\__init__.py里的字符串...'

>>> parent.two.time

>>> parent.two.time.time()

1605883430.647523

>>> time

Traceback (most recent call last):

File "", line 1, in

NameError: name 'time' is not defined

>>> from parent.two import time

>>> time

>>> now = time.time()

>>> print(time.ctime(now))

Fri Nov 20 22:46:45 2020

>>> import parent.three

導(dǎo)入parent/three包...內(nèi)部已經(jīng)導(dǎo)入jieba庫

>>> import parent.three as three

>>> three.str_parent_three

'我是parent\\three\\__init__.py里的字符串...'

>>> three.jieba

>>> jieba.lcut("全國計(jì)算機(jī)等級考試Python科目")

Traceback (most recent call last):

File "", line 1, in

NameError: name 'jieba' is not defined

>>> three.jieba.lcut("全國計(jì)算機(jī)等級考試Python科目")

Building prefix dict from the default dictionary ...

Dumping model to file cache C:\Users\chenxuqi\AppData\Local\Temp\jieba.cache

Loading model cost 0.857 seconds.

Prefix dict has been built successfully.

['全國', '計(jì)算機(jī)', '等級', '考試', 'Python', '科目']

>>> from parent.one import str_parent_one

導(dǎo)入parent/one包...內(nèi)部已經(jīng)導(dǎo)入hashlib庫

>>> str_parent_one

'我是parent\\one\\__init__.py里的字符串...'

>>> from parent.one import hashlib as hsb

>>> hsb

>>> hsb.md5("尹增寶愛聽古風(fēng)音樂".encode("utf8")).hexdigest()

'075649873523f1e621d4b33f69b60ebb'

>>>

>>> hsb.md5("林祖泉".encode("utf8")).hexdigest()

'738974139c96e7c1b174e1f886ffb641'

>>>

>>>

導(dǎo)入一個(gè)包之后,無法訪問其子包,除非其子包有__init__.py文件,而且該文件已經(jīng)被執(zhí)行過一次,那么該包就會(huì)有其該子包的屬性,否則會(huì)報(bào)錯(cuò),比如:AttributeError: module 'parent' has no attribute 'three'

修改./__init__.py文件:

print("導(dǎo)入parent包...內(nèi)部已經(jīng)導(dǎo)入random庫")

str_parent = r"我是parent\__init__.py里的字符串..."

import random

import parent.one as yi

from parent import two

# import parent.three

cmd控制臺下的操作如下:

Windows PowerShell

版權(quán)所有 (C) Microsoft Corporation。保留所有權(quán)利。

嘗試新的跨平臺 PowerShell https://aka.ms/pscore6

PS C:\Users\chenxuqi\Desktop\新建文件夾\測試包> python

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> parent

Traceback (most recent call last):

File "", line 1, in

NameError: name 'parent' is not defined

>>> import parent

導(dǎo)入parent包...內(nèi)部已經(jīng)導(dǎo)入random庫

導(dǎo)入parent/one包...內(nèi)部已經(jīng)導(dǎo)入hashlib庫

導(dǎo)入parent/two包...內(nèi)部已經(jīng)導(dǎo)入time庫

>>> parent

>>> parent.one

>>> parent.yi

>>> parent.two

>>> yi

Traceback (most recent call last):

File "", line 1, in

NameError: name 'yi' is not defined

>>> two

Traceback (most recent call last):

File "", line 1, in

NameError: name 'two' is not defined

>>> one

Traceback (most recent call last):

File "", line 1, in

NameError: name 'one' is not defined

>>> three

Traceback (most recent call last):

File "", line 1, in

NameError: name 'three' is not defined

>>> parent.three

Traceback (most recent call last):

File "", line 1, in

AttributeError: module 'parent' has no attribute 'three'

>>> import parent.three

導(dǎo)入parent/three包...內(nèi)部已經(jīng)導(dǎo)入jieba庫

>>> parent.three

>>> three

Traceback (most recent call last):

File "", line 1, in

NameError: name 'three' is not defined

>>> import parent.three as three

>>> three

>>>

>>>

實(shí)驗(yàn)源代碼獲取: 源代碼下載鏈接

本文分享 CSDN - 敲代碼的小風(fēng)。

如有侵權(quán),請聯(lián)系 support@oschina.cn 刪除。

本文參與“OSC源創(chuàng)計(jì)劃”,歡迎正在閱讀的你也加入,一起分享。

總結(jié)

以上是生活随笔為你收集整理的python type help copyright_Python关于import的实验(8)__init__.py文件内部代码的执行以及内部的导入和内部的变量...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。