2017-08-08 46 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

'__init__'两边都需要两个下划线。 –

回答

0

您必须使用双下划线而不是单下划线。 使用__init__而不是_init_来定义方法。

这将解决。

因为__init__会构建您的Dog类的对象,而_init_不会。 正如python-docs__init__指出当创建实例

0

变化_init___init__那么你的代码将编译就好被调用。阅读更多关于__init__here