首先,我知道有來實現繼承這樣一個正確的做法:爲什麼我不能像這樣實現繼承?
class Parent():
def __init__(self, last_name, eye_color):
self.last_name = last_name
self.eye_color = eye_color
class Child(Parent):
def __init__(self, last_name, eye_color, number_of_toys):
Parent.__init__(self, last_name, eye_color)
self.number_of_toys = number_of_toys
miley_cyrus = Child("Cyrus", "Blue", 5)
print(miley_cyrus.last_name)
print(miley_cyrus.number_of_toys)
當我運行的代碼段,有一個
Cyrus
5
然而,當我改變結果7號線進入:
self = Parent(last_name, eye_color)
和代碼已經成爲:
class Parent():
def __init__(self, last_name, eye_color):
self.last_name = last_name
self.eye_color = eye_color
class Child(Parent):
def __init__(self, last_name, eye_color, number_of_toys):
self = Parent(last_name, eye_color)
self.number_of_toys = number_of_toys
miley_cyrus = Child("Cyrus", "Blue", 5)
print(miley_cyrus.last_name)
print(miley_cyrus.number_of_toys)
,我運行一段代碼,有一個錯誤指示:
Traceback (most recent call last):
File "/Users/Echo/Documents/IT/Udacity/python/7.Inheritance/inherentance.py", line 12, in <module>
print(miley_cyrus.last_name)
AttributeError: Child instance has no attribute 'last_name'
這有什麼錯呢?提前致謝。
'self = Parent'?你想爲自己的父對象? – vks
試試這個self.obj = Parent(last_name,eye_color) –
請注意,由於不相關的原因,最好在Python中繼承'object'而不是無('class Parent(object):')。 –