Python呼叫問題__init__(self,driver)
阿新 • • 發佈:2019-01-28
在工作中遇見這樣一個問題,防止以後忘記,記錄該問題
一、有2個py檔案basepage.py和baidu_search.py
basepage.py
在baidu_search.py中呼叫上面的py檔案
二、有另外2個py檔案,browser_engine.py和testabby.py
browser_engine.py檔案
在testabby.py中呼叫上面哪個py檔案
分析一和二中的程式碼,比較迷惑的是,同樣的建構函式
但是在呼叫的時候卻不一樣,一的呼叫是
二的呼叫是
一個後面帶的引數是driver,一個是self,為什麼這樣?
根據Log日誌去判斷,在一中
列印的日誌為:<test.basepage.BasePage object at 0x0000000005600D68>
在二中
列印的日誌為:<test.browser_engine.BrowserEngine object at 0x0000000004C8B9E8>
發現列印的日誌一樣。根據對比程式碼,發現在一中,
的呼叫是在def方法外部,且其中的driver是外部傳入的driver
而不是這裡面的driver
在二中
的呼叫是在def方法內部,且其中的self是當前
TestBrowserEngine本身。
總結,在呼叫class類時,如果有
建構函式,它和class呼叫本身沒有關係,而和class的呼叫的地方有關係,如果在def內部去呼叫,則使用self的方式,如果在def外部去呼叫,括號中的值則可以是外部傳入的值。因為有
所以呼叫的時候,必須帶一個引數