1. 程式人生 > >Python呼叫問題__init__(self,driver)

Python呼叫問題__init__(self,driver)

在工作中遇見這樣一個問題,防止以後忘記,記錄該問題

一、有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外部去呼叫,括號中的值則可以是外部傳入的值。因為有

所以呼叫的時候,必須帶一個引數