python TypeError:Car()没有参数

xzlaal3s  于 2023-03-11  发布在  Python
关注(0)|答案(2)|浏览(188)

我正在尝试创建一个类。但是在运行代码时,我收到了这个错误:
TypeError:Car()不接受任何参数。

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

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

zlhcx6iw1#

您的程序缺少构造函数,因此出现错误。另外请注意,您可能引用的是__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__。我已在上面的代码中更正了它。
希望这有帮助!

j9per5c4

j9per5c42#

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')

希望这能帮上忙。

相关问题