很抱歉,如果我不解釋它是很好,但我會盡我所能:Python的繼承父類變量
所以我想繼承父類中的變量,但我不希望在創建Child類的實例時再次傳遞它們,因爲我認爲這是多餘的。例如,我只想使用Parent的眼睛顏色。請參見下面的示例代碼我的意思
這是什麼在起作用:
class Parent:
def __init__(self, eye_color, length):
self.eye_color = str(eye_color)
self.length = length
class Child(Parent):
def __init__(self, gender, eye_color, length):
super().__init__(eye_color, length)
self.gender = str(gender)
x = Parent("Blue", 2)
y = Child("Men", "Blue", 2)
print(x.eye_color, x.length)
print(y.gender, x.length)
這是我莫名其妙地想:
class Parent:
def __init__(self, eye_color, length):
self.eye_color = str(eye_color)
self.length = length
class Child(Parent):
def __init__(self, gender):
super().__init__(eye_color, length)
self.gender = str(gender)
x = Parent("Blue", 2)
y = Child("Men")
print(x.length, x.eye_color)
print(y.gender, x.length)
你不能得到你想要的東西。但是你可以使用'*參數,** kwargs'幾乎到達那裏。 – wim
'eye_color'和'length'特定於'Parent'的*實例*,而不是整個類。鑑於'x1 =父(「藍」,2)','x2 =父(「綠」,3)「和」y =子(「男」)','y.eye_color'或'y.length'是?至少,「Child.__ init__」需要將「Parent」實例作爲參數。 – chepner
您可以在'Parent'類中創建'create_child'方法,該方法將返回具有父特徵的'Child'類的實例。所以你可以像'y = x.create_child()'使用它' –