我這幾天在自學python學到了super的時候突然發現了問題
class Base:
def __init__(self):
print('Base.__init__')
class A(Base):
def __init__(self):
super().__init__()
print('A.__init__')
A()
總所周知,在C++中構造子類的時候會自動呼叫父類的建構式,但為什么在Python中需要手動去呼叫基類的init函式呢?
uj5u.com熱心網友回復:
我知道了,是python必須主動初始化基類。那么在基類中直接賦值的成員資料在派生類沒有呼叫基類init的情況下不會被繼承,但是如果在基類中宣告了,則會被繼承,所以是不是在Python編程中,類的資料成員都必須宣告?uj5u.com熱心網友回復:
不需要,class Base:
a = 12
class Son(Base):
b = 30
# 從子類中答應父類資料
print(Son.a)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10228.html
下一篇:buuctf-刮開有獎
