-1

__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)
4

2 回答 2

0

您没有指定错误,我假设解释器不允许您将列表与字符串连接起来。

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)
于 2020-06-15T14:02:34.480 回答
0

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
于 2020-06-15T14:11:33.133 回答