Python _repr _;方法未按预期工作

2024-05-15 13:31:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: the函数代码selfdeflistclassbill
2条回答

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

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

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)

相关问题 更多 >