-1
class A(object):
def __init__(self):
print "A"
class B(A):
pass
c = b()
#output:
#A
案例2:
class A(object):
def __init__(self):
print "A"
class B(A):
def __init__(self):
print "B"
c = b()
#output:
#B
在案例1運行的class A
構造和情形2它運行構造函數爲class B
。
因此,如果case1打印A被理解爲它正在運行class A
構造函數,因爲class B
已繼承它。
然後在case2它只運行class B
構造函數,但不是class A
構造函數爲什麼。
現在發生了什麼在這裏。 python覆蓋了class A
構造函數嗎?或者發生了什麼 「我是編程新手。」
*初始值*被覆蓋。父*初始值*可以使用'super'訪問。 –
如果你在'B'中放置了一個'__init__',它將覆蓋'A'中的一個。如果你不這樣做,它不會。 Pythons'__init__'方法不會自動調用超類的'__init__'方法。我不知道爲什麼你在標題中加入「過載」。 – khelwood
*「按照OOP的概念,構造函數不能被繼承。」* - 說誰? – deceze