2016-09-08 4 views
1

私はクラスParentとChildというサブクラスを作ろうとしました。その後、私は子の引数をコンストラクタinitを使って親に渡しましたが、このエラーはスローされ続けます。これをどうすれば解決できますか?ちなみに、Parent.name = nameなどを使ってサブクラスに値を代入すれば、それはうまく動作します。しかし、どのように私はコンストラクタを使用してこれを行うことができますか?私は、これは動作するはず信じこの問題を解決するには、Pythonでは '属性はありません'というエラーがありますか?

class Parent(object): 
    def __init__(self, name, color): 
     print("Parent Constructor called") 
     self.firstname=name 
     self.eyecolor=color 

class Child(Parent): 
    def __init__(self, name, color, toys): 
     print("Child Constructor called") 
     Parent.__init__(self,name,color) 
     self.toys=toys 

robert_langdon=Child("Holmes", "brown", 5) 
print(robert_langdon.name) 
print(robert_langdon.toys) 

Snapshot of the error thrown

+2

robert_langdon.firstnameをお探しですか? – Chachmu

+0

それを正確に解決しました!どうもありがとう!!私はほとんど迷惑をかけて答えを探していた! –

答えて

1

(私は明示的に基底クラスを参照しないようにsuperを使用しました、そしてあなたも(firstnameないnameでなければなりません)間違った属性を探していました):

class Parent(object): 
    def __init__(self, name, color): 
     print("Parent Constructor called") 
     self.firstname=name 
     self.eyecolor=color 

class Child(Parent): 
    def __init__(self, name, color, toys): 
     print("Child constructor called") 
     super(Child,self).__init__(name,color) 
     self.toys=toys 

robert_langdon=Child("Holmes", "brown", 5) 
print(robert_langdon.firstname) 
print(robert_langdon.toys) 
関連する問題