【问题标题】:python __repr__(self): does not returnpython __repr__(self):不返回
【发布时间】:2021-12-06 06:06:43
【问题描述】:

我有一个下面的代码,其中魔术方法 repr(self) 不返回我的实例参数 下面是代码 我正在尝试学习 oops 的概念

class Item:
    pay_rate = 0.8 # The pay rate after 20% discount
    all = []
    def __init__(self, name: str, price: float, quantity=0):
        # Run validations to the received arguments
        assert price >= 0, f"Price {price} is not greater than or equal to zero!"
        assert quantity >= 0, f"Quantity {quantity} is not greater or equal to zero!"

        # Assign to self object
        self.name = name
        self.price = price
        self.quantity = quantity

        # Actions to execute
        Item.all.append(self)

    def calculate_total_price(self):
        return self.price * self.quantity

    def apply_discount(self):
        self.price = self.price * self.pay_rate

    def __repr__(self):
        return "Item('{self.name}', {self.price}, {self.quantity})"

item1 = Item("Phone", 100, 1)
item2 = Item("Laptop", 1000, 3)
item3 = Item("Cable", 10, 5)
item4 = Item("Mouse", 50, 5)
item5 = Item("Keyboard", 75, 5)

【问题讨论】:

  • 应该__repr__ 在开场报价之前有一个f 吗?目前它只是一个字符串,而不是 f 字符串。
  • 也不清楚你想用Item.all.append(self)发生什么

标签: python repr


【解决方案1】:

你错过了一个 f 字符

def __repr__(self):
    return f"Item('{self.name}', {self.price}, {self.quantity})"

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2012-11-23
    • 2018-05-06
    • 2015-01-23
    • 2014-10-06
    • 2020-02-07
    相关资源
    最近更新 更多