Python3 五 包 模組 函式與變數作用域

2022-08-16 12:12:11 字數 2603 閱讀 4949

最頂級的組織結構:包(資料夾)

第二個層級:模組(檔案)

第三個層級:類

第四個層級:函式、變數(不屬於組織結構,是類本身的特性)

1.區分不同包的同名模組:包名.模組名

形成的模組的路徑叫做命名空間

2.乙個包下面可以有子包,模組可以和包平級

3.普通資料夾想要變成包必須要有__init__.py檔案

__init__.py本身也是乙個模組,可以不寫內容只是標註包

特殊的,__init__.py模組的名字就是包名

對於重複的定義可以從其他模組裡引用,不需要重複編寫。

1.語法:import 模組名

若被匯入模組在子包下面,要加上命名空間,語法:import  子包名.模組名

2.引用匯入模組的某乙個變數的語法:模組名.變數名

import

t.cprint(t.c.a)

3.可以用as進行簡寫

import

t.c as m

print

(m.a)

#print(t.c.a)

1.匯入變數

from t.c import

aprint

(a)#

不需要寫成print(t.c.a)

2.匯入模組(不推薦)

from t import

cprint(c.a)

3.引用大量變數時使用* :

from c import *

4."*"會一次性的把模組下面所有的變數或者函式全部匯入進來,但是在實際的編碼過程中不太可能在引入的時候需要全部的變數,那麼就需要我們控制 * 的行為,讓 * 匯入的時候只匯入我們指定的變數。

#

test1.c

__all__ = ['

a','

c']    #

用內建變數__all__來控制 * 的選擇範圍

a = 1b = 2c = 3d = 4 #

test1.c2 

from c import *

print

(a)print

(c)print(d)       #

d沒有被列印,報錯

執行結果:1   3 

1.__init__.py檔案的作用:

當包被匯入時,init.py會首先自動被執行

#

t.__init__.py

a = '

this is a __init__.py file

'print

(a)

#c11.py

import t #

匯入包t,t裡面的__init__.py檔案就會被自動執行

執行結果:this

is a __init__.py file

假如不匯入包,而是匯入包裡面模組的某個變數,init檔案依舊會自動執行

#

t.c7.py

__all__ = ['

a','c'

]a = 2c = 3d = 4 #

c12.py

from t.c7 import

a

執行結果:this

is a __init__.py file

2. __init__.py的應用場景:

#

t.__init__.py

__all__ = ['

c7'] #

初始化*,標明哪些模組被匯出

#t.c7.py

__all__ = ['

a','c'

]a = 2c = 3d = 4 #

t.c8.py

e = 2f = 3g = 4 #

c11.py

from t import * #

* 表示匯入 t 包裡的所有模組

print(c7.a) #

c7在init中被定義,可引用

print(c8.e) #

c8在init中未定義,不可引用

執行結果是2

3. __init__.py的重要作用

#

t包下面的__init__.py

import sys #

批量導入庫,內建標準庫

import

datetime

importio

#c13.py

import

tprint(t.sys.path) #

在這裡插入**片

1.包和模組是不會被重複的匯入的,只會執行一次

2.避免迴圈匯入,不要形成閉環(多個模組之間形成閉環)

3.匯入模組的時候會執行模組裡所有的**

python(五)函式 模組 包

模組 包的概念?在python中,乙個.py檔案就稱之為乙個模組 module 我們在編寫程式的時候,也經常引用其他模組,包括python內建的模組和來自第三方的模組 你也許還想到,如果不同的人編寫的模組名相同怎麼辦?為了避免模組名衝突,python又引入了按目錄來組織模組的方法,稱為包 packa...

Python 五 包 模組 函式與變數作用域

condition 1 while condition 5 condition 1 print hello else print eof hello hello hello hello hello eof 主要是用來遍歷 迴圈 序列或者集合 字典 a a b c d 1,2,3 for x in a...

Python3簡單教程(五)函式

相關檔案及後續更新會上傳至 函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。規則 函式 塊以def關鍵字開頭,後接函式識別符號名稱和圓括號 任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。函式的第一行語句可以選擇性的使用文...