1、python的moudles文件中__all__作用 Python的moudle是很重要的一個概念,我看到好多人寫的moudle里都有一個__init__.py文件。有的__init__.py中是空白,有的卻會有__all__參數。搜索了下總結下__all__參數的作用。 如果其他頁面impor ...
1、python的moudles文件中__all__作用
Python的moudle是很重要的一個概念,我看到好多人寫的moudle里都有一個__init__.py文件。有的__init__.py中是空白,有的卻會有__all__參數。搜索了下總結下__all__參數的作用。
如果其他頁面import *的時候如果__init__.py是空白的,可以直接import到moudle的所有函數。而如果__init__.py中定義了__all__,則import *的時候只會導入__all__部分定義的內容。
例如:__all__ = ['User', 'UserCode', 'Tweet', ]
2、__slots__用於限定類屬性,如:
class A(object):
__slots__ = ['var']
此時外部調用時,如:
a = A()
a.var = 4 #不會報錯
a.other = 4 #此時則會拋出異常AttributeError
3、下麵的小技巧可以獲取私有變數:
Python沒有真正的私有變數。內部實現上,是將私有變數進程了轉化,規則是:_<類名><私有變數>
1 class Test(object): 2 def __init__(self): 3 self.__zzz=111 4 5 if __name__ == '__main__': 6 a = Test() 7 print a._Test__zzz
同樣,通過a._Test__zzz=222的方式,可以修改私有變數的值。