Typeerror不带参数

时间:2019-12-29 00:06:46

标签: python python-3.x

我知道这可能是一个愚蠢的问题,但是我很难弄清错误。 我创建了一个名为User的类,以打印出名字和姓氏。但是,当我尝试运行它时,这会给我带来打字错误。

class User():
    def _init_(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

    def describe_user(self):
        print("Your name is " + self.first_name.title() + ", " + self.last_name.title())
user_name = User('Andy', 'Wang')
user_name.describe_user()

错误如下:

File "c:\Users\Andy Wang\Documents\PCC\chap7.py", line 291, in <module>
    user_name = User('Andy', 'Wang')
TypeError: User() takes no arguments

我做了一个类似的程序,但是这次描述了一家餐厅,它运作良好:

class Restaurant():
    def __init__(self, restaurant_name, cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type

    def describe_restaurant(self):
        print("\nThe restaraunt is called " + self.restaurant_name.title() + ".")
        print("It serves " + self.cuisine_type.title() + " food.")

    def open_restaurant(self):
        print(self.restaurant_name + " is open!\n")

restaraunt = Restaurant('Szechuan Ichiban', 'Chinese')
restaraunt.describe_restaurant()
restaraunt.open_restaurant()

所以我对餐厅类为什么起作用而我的用户类却不能起作用感到困惑。

谢谢大家的帮助!

1 个答案:

答案 0 :(得分:2)

非常简单的__init__前后都有2个下划线。所以应该是

class User():
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

    def describe_user(self):
        print("Your name is " + self.first_name.title() + ", " + self.last_name.title())
user_name = User('Andy', 'Wang')
user_name.describe_user()