2017-08-08 5 views
-2

私は文字通りガイドブックの単語を単語としてコピーしています。私はこのコードを入れています: 尻:Pythonのガイドブックからの単純なクラスエラー

class Dog(): 

    def _init_(self, name, age): 
     self.name = name 
     self.age = age 
    def sit(self): 
     print(self.name.title() + " is now sitting") 
    def roll_over(self): 
     print(self.name.title() + " rolled over") 

my_dog = Dog('willie', 6) 
my_dog.sit() 
my_dog.roll_over() 

をしかし、代わりに取得する:私は取得しています「ウィリーはロールオーバーしました」:私を助けてください

Traceback (most recent call last): 
    File "dog.py", line 10, in <module> 
    my_dog = Dog('willie', 6) 
TypeError: object() takes no parameters 

を....私がしたいです私が間違っていることを知っている!

+3

'については、こちらをご覧ください。 –

答えて

0

あなたは二重のアンダースコアの代わりに、単一のアンダースコアを使用する必要があります。 _init_の代わりに__init__でメソッドを定義します。

これで解決します。

__init__Dogクラスのオブジェクトを作成するため、_init_は作成しないためです。 python-docs__init__で述べたように は、インスタンスが作成されたとき

0

変更_init_その後、__init__にあなたのコードはうまくコンパイルうと呼ばれています。どちらかの側に2つのアンダースコアを必要とする__init__` __init__here

関連する問題