我知道这可能是一个愚蠢的问题,但是我很难弄清错误。 我创建了一个名为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()
所以我对餐厅类为什么起作用而我的用户类却不能起作用感到困惑。
谢谢大家的帮助!
答案 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()