TypeError:object()没有参数失败错误

时间:2017-07-02 05:05:51

标签: 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!")

class Dog():

my_dog = Dog('willie', 6)

print("my dog's name is " + my_dog.name.title() + ".")

print("my dog is " + str(my_dog.age) + " years old.")

enter image description here

1 个答案:

答案 0 :(得分:1)

问题

您的问题很简单,就是您要在代码中途重新定义狗类 - class Dog():只应在您的程序中出现一次。

由于Python从上到下读取代码,并且自第二次class Dog():出现以来,没有缩进代码,它正确定义顶部的Dog类,然后将其重新定义为中间是一个空对象,没有参数:因此错误消息的措辞为TypeError: object() takes no parameters

解决方案

只需删除第二个class Dog():

以下代码应按预期工作:

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)

print("my dog's name is " + my_dog.name.title() + ".")

print("my dog is " + str(my_dog.age) + " years old.")