该 __repr__
函数在下面的代码中不起作用。
class Minibar:
def __init__(self, drinks, snacks):
self.drinks=drinks
self.snacks= snacks
self.bill=0
def __repr__(self):
return "The minibar contains the drinks: " + list(str(self.drinks)) + "And the snacks: " + list(str(self.snacks)) + "The bill for the minibar is:" + self.bill**
m = Minibar({'coke': 10, 'lemonade': 7}, {'bamba': 8, 'mars': 12})
print(m)
你没有指定错误,我想解释器不会让你用字符串连接一个列表。
def __repr__(self):
return "The minibar contains the drinks: " + str(self.drinks) + "And the snacks: " + str(self.snacks) + "The bill for the minibar is:" + str(self.bill)
python解释器不允许你用字符串连接一个列表。相反,你可以用下面的命令将列表转换成字符串。str(list)
或迭代列表中的元素。
class Minibar:
def __init__(self, drinks, snacks):
self.drinks = drinks
self.snacks = snacks
self.bill = 0
def __repr__(self):
string = "The minibar contains the drinks: "
for drink in self.drinks:
string += drink + " "
string += "And the snacks: "
for snack in self.snacks:
string += snack + " "
string += "The bill for the minibar is " + str(self.bill)
return string