我正在尝试使用Python 3.6创建和使用类,但是当我尝试调用打印有关我的类的信息的方法时,我收到以下错误:
.shrink-toolbar {
height: 32px;
}
这是我正在尝试运行的代码:
'TypeError: not enough arguments for format string'
open_restaurant()方法工作正常但是使用my_restaurant.describe()我收到了我提到的错误消息。
答案 0 :(得分:2)
看到你正在使用python3.6。 f-strings
更好。
class Restaurant(object):
def __init__(self, name, type):
self.name = name
self.type = type
def describe(self):
print(f"Restaurant name: {self.name}, Cuisine type: {self.type}")
def open_restaurant(self):
print(f"{self.name} is now open!")
my_restaurant = Restaurant("Domino", "Pizza")
my_restaurant.describe()
my_restaurant.open_restaurant()
Restaurant name: Domino, Cuisine type: Pizza
Domino is now open!
答案 1 :(得分:0)
你需要传递一个元组:
print("Restaurant name: %s , Cuisine type: %s" % (self.name, self.type))
但实际上,%
类型的字符串格式化在Python中已经大部分已经过时多年了,您可能不应该在Python 3.6中使用它。相反:试试这个:
print("Restaurant name: {} , Cuisine type: {}".format(self.name, self.type))
当然还是:
print("Restaurant name:", self.name, ", Cuisine type:", self.type)
答案 2 :(得分:0)
这有效(注意“%”右边的元组)
print("Restaurant name: %s , Cuisine type: %s" % (self.name, self.type))
您可以考虑使用较新的表单
print("Restaurant name: {} , Cuisine type: {}".format(self.name, self.type))