讓父系幫助你【使用 super】
【範例一】如果想要呼叫父類別的方法時,該怎麼辦?只要說 super()
>>> class 父類別名稱():
def __init__(self, name):
self.name = name
>>> class 子類別名稱(父類別名稱):
def __init__(self, name, email):
super().__init__(name)
self.email = email
>>> 文字 = 子類別名稱('字串1', '字串2')
>>> 文字.name
字串1
>>> 文字.email
字串2
>>> class Person():
def __init__(self, name):
self.name = name
>>> class EmailPerson(Person):
def __init__(self, name, email):
super().__init__(name)
self.email = email
>>> bob = EmailPerson('Bob Frapples', '[email protected]')
>>> bob.name
'Bob Frapples'
>>> bob.email
'[email protected]'
【範例二】這種做法也可以,但會破壞繼承的使用
>>> class 子類別名稱(父類別名稱):
def __init__(self, name, email):
self.name = name
self.email = email
>>> class EmailPerson(Person):
def __init__(self, name, email):
self.name = name
self.email = email
- 為什麼不像這樣定義新類別就好?
→ 這種做法也可以,但是它會破壞繼承的使用
使用 super() 好處
* 使用 super() 來讓「父類別 Person」做它的工作,與一般的「父類別 Person 物件」做的事情一樣
* 如果以後「父類別 Person」的定義被改變了,使用 super() 可確保「子類別 EmailPerson」從「父類別 Person」繼承來的屬性與方法,可以反應它的改變
* 如果「子類別」會使用它自己的方法來做事,但仍然需要用到「父類別」的東西,請使用 super()