TypeError:Car()不接受任何参数

时间:2020-06-28 18:39:14

标签: python python-3.x class

我正在尝试创建一个类。但是在运行代码时出现此错误:

TypeError:Car()不接受任何参数。

class Car:
   def __rep__(self):
        return f'Car({self.name},{self.year_built},{self.model})'


c1 = Car('minicooper','1970','MX1')

2 个答案:

答案 0 :(得分:0)

class Car:
   # Constructor
   def __init__(self, name, year_built, model):
       self.name = name
       self.year_built = year_built
       self.model = model

   def __repr__(self):
        return f'Car({self.name},{self.year_built},{self.model})'


c1 = Car('minicooper','1970','MX1')

我希望这会有所帮助。

答案 1 :(得分:0)

您的程序缺少构造函数,因此出错。另请注意,您可能指的是__repr__,而不是__rep__。您的最终代码应如下所示-

class Car: 
    # In your code, this constructor was not defined and hence you were getting the error
    def __init__(self,name,year,model):
        self.name = name
        self.year_built = year
        self.model = model
    def __repr__(self):
        return f'Car({self.name},{self.year_built},{self.model})'

# The below statement requires a constructor to initialize the object
c1 = Car('minicooper','1970','MX1')

#
print(c1)

输出:

>>> Car(minicooper,1970,MX1)

__init__在python中用作构造函数。用于初始化对象的状态。构造函数的任务是在创建类的对象时向类的数据成员初始化(分配值)。因此,当您在调用-Car('minicooper','1970','MX1')中传递变量时,将调用构造函数。您没有构造函数,因此收到错误消息。

__repr__(object)用于返回包含对象的可打印表示形式的字符串。尝试打印对象时将使用它。您在代码中错误地将其称为__rep__。我已经在上面的代码中对其进行了纠正。

希望这会有所帮助!