Python __all__變量用法


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的注釋后,如下:


那么在模塊中的__all__變量就是為了限制或者指定能被導入到別的模塊的函數,類,全局變量等,如果指定了那么只能是指定的那些可以被導入,沒有指定默認就是全部可以導入,當然私有屬性應該除外。

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這個文件

原文:https://blog.csdn.net/chuan_day/article/details/79694319 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM