[問題] 關於class的繼承在__init__()中的疑惑

作者: jamesxxx1997 (黃~)   2017-12-26 17:32:38
大家好,我在一個爬蟲framework中,建立了兩個.py檔案
第一個檔案中有一個class SeleniumDriver
第二個檔案中有一個class LoginPage
LoginPage繼承SeleniumDriver
在SeleniumDriver中
def __init__(self,driver):
self.driver = driver
在LoginPage中
def __init__(self,driver):
super().init__(driver)
self.driver = driver
在SeleniumDriver中,有很多使用self.driver的function
ex. self.driver.find_element()
如果我沒有在LoginPage的__init__()中用super()
,會調用不到SeleniumDriver中的方法嗎? 為什麼呢?
謝謝
PS.
code
class SeleniumDriver ==> https://goo.gl/A3n4jR
class LoginPage ==> https://goo.gl/NJFw1N
selenium老師的解釋(看不懂) : We are using it to initialize the driver instance in the parent class│
If the parent class does not know about the driver instance, you will be able
to call the methods from the parent class but they will give an exception
because they do not know about driver methods│
作者: s860134 (s860134)   2017-12-26 21:15:00
__init__你下面那個打錯了另外你都看到 SeleniumDriver 沒做啥事情,不去引用沒差你會在意的是哪天 SeleniumDriver __init__ 做了甚麼事LoginPage 是不是要一起改
作者: jamesxxx1997 (黃~)   2017-12-26 22:20:00
所以其實根本就不用加上super()XD謝謝S大大
作者: uranusjr (←這人是超級笨蛋)   2017-12-26 23:55:00
我的嗎啊這用繼承寫是老師教你的嗎
作者: jamesxxx1997 (黃~)   2017-12-27 00:37:00
u大,對的這是一個selenium webdriver的framework

Links booklink

Contact Us: admin [ a t ] ucptt.com