python中類的初始化方法是__init__(),因此父類子類的初始化方法都是這個(gè),如果子類不實(shí)現(xiàn)這個(gè)函數(shù),初始化時(shí)調(diào)用父類的初始化函數(shù),如果子類實(shí)現(xiàn)這個(gè)函數(shù),就覆蓋了父類的這個(gè)函數(shù),既然繼承父類,就要在這個(gè)函數(shù)里顯式調(diào)用一下父類的__init__(),這跟C++,jAVA不一樣,他們是自動調(diào)用父類初始化函數(shù)的。
調(diào)用父類函數(shù)有以下方法:
class A:
def method(self, arg):
pass
class B(A):
def method(self, arg):
# A.method(self,arg) # 1
# super(B, self).method(arg) #2
super().method(arg) #3
1.直接寫類名調(diào)用
2.用 super(type, obj).method(arg)方法調(diào)用。
3.在類定義中調(diào)用本類的父類方法,可以直接 super().method(arg).
在代碼中調(diào)用對象的父類的方法的示例:
ob = B()
super(B,ob).method(arg) #調(diào)用class B的父類class A的method。
初始化中調(diào)用父類初始化方法示例:
class B(A):
def __init__(self):
super().__init__()
更多信息請查看IT技術(shù)專欄