Python模組匯入時全域性變數 all

2021-10-08 23:33:08 字數 1170 閱讀 9999

這位大佬已經寫得很好了:

python中乙個py檔案就是乙個模組,__all__變數是乙個特殊的變數,可以在py檔案中,也可以在包的__init__.py**現。

1、在普通模組中使用時,表示乙個模組中允許哪些屬性可以被匯入到別的模組中,

如:全域性變數、函式和類等。如下,test1.py和main.py

# 檔案 test1.py

__all__=

["test"

]def

test()

:print

('----test-----'

)def

test1()

:print

('----test1----'

)

# 檔案 main.py

from test1 import

*def

main()

: test(

)#test1()

main(

)

兩個檔案在同乙個目錄下。

此時執行python main.py時結果如下:

但是如果放開main.py的注釋後,如下:

2、在包下的__init__.py

sound/effects/__init__.py中新增__all__ = ["echo", "surround", "reverse"]

那麼就會在from sound.effects import *時,包含上面三個模組。

__init__.py為空時,只是匯入這個包,並非匯入模組。

__init__.py中可以執行一些初始化內容,比如:

from . import test1匯入當前目錄下的test1模組

from .. import test匯入上一層目錄下的test模組

因為匯入包時會首先執行下__init__.py這個檔案

python 模組及全域性變數

test sa.py coding utf 8 user defined parameters global a a 5def change a global a 模組內使用a,必須使用global變數 a 3 print local a str a def print a global a 模組內...

Nodejs fs模組 全域性變數

fs模組提供了用於與檔案進行互動相關方法 const fs require fs 寫入資料 fs.writefile 檔案,資料,err 讀取檔案中資料 fs.readfile 檔案 utf8 err,data 檢查檔案是否存在 返回 true false fs.existssync path 獲取...

python 全域性變數

應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...