吳老的《selenium webdriver 實戰寶典》出版了!
作者:徐文
來源:http://www.cnblogs.com/AlwinXu/p/5598543.html
在創建python包的過程中,IDE都會在包根目錄下創建一個__init__.py文件,該Python文件默認是空的.目錄結構如下:
Pycharm下的package樹結構:
在Finder中的目錄結構:
從Finder中的目錄就可以看出來,每個package實際上是一個目錄(Directory),那麼IDE是怎麼識別它為package呢?沒錯,__init__.py的第一個作用就是package的標識,如果沒有該文件,該目錄就不會認為是package。
Python中的包和模塊有兩種導入方式:精確導入和模糊導入:
精確導入:
from Root.Pack1 import Pack1Classimport Root.Pack1.Pack1Class
模糊導入:
from Root.Pack1 import *
模糊導入中的*中的模塊是由__all__來定義的,__init__.py的另外一個作用就是定義package中的__all__,用來模糊導入,如__init__.py:
__all__ = ["Pack1Class","Pack1Class1"]
在包外部調用:
from Root.Pack1 import *a = Pack1Class.Pack1_AA("Alvin")a.PrintName()
__init__.py首先是一個python文件,所有還可以用來寫python模塊,但是不建議這麼寫,儘量保證__init__.py足夠輕:
__init__.py:
__all__ = ["Pack1Class","Pack1Class1","Init_AA"]
class Init_AA:
def __init__(self,name): self.name = name
def Greeting(self):
print("Hello ",self.name)
在測試中調用:
from Root.Pack1 import *b = Init_AA("test")b.Greeting()
總結:
從上邊的例子可以看出,__init__.py的主要作用是:
1. Python中package的標識,不能刪除
2. 定義__all__用來模糊導入
3. 編寫Python代碼(不建議在__init__中寫python模塊,可以在包中在創建另外的模塊來寫,儘量保證__init__.py簡單)
聲明:授權轉載,如需轉載請聯繫原作者!
公益傳播測試知識、技能與正能量!感謝作者!
分享測試生活,思考測試人生!歡迎投稿!
文章圖片來自網絡,如有侵權請見諒,請聯繫我們妥善處理。
735821166@qq.com
官網:www.gloryroad.cn
微信公眾號:gloryroadtrain
性能測試QQ群:415987441
測試招聘QQ群: 203715128
Java2群:569534627
Python群:457561756
諮詢V信:mengqiao626
諮詢QQ:53617154