我有一个像下面这样的类:
class Invoice
def __init__(self, invoice_id):
self.invoice_id = invoice_id
self._amount = None
@property
def amount(self):
return self._amount
@amount.setter
def amount(self, amount):
self._amount = amount
在上面的示例中,每当我尝试在不设置其值的情况下获取发票金额时,我都会得到一个 None,如下所示:
invoice = Invoice(invoice_id='asdf234')
invoice.amount
>> None
但在这种情况下, None 不是金额的正确默认值。我应该能够区分金额值是 None 还是根本没有设置金额值。所以问题如下:
我们如何处理类属性没有正确默认值的情况?在上面的例子中,如果我self._amount = None从 init 中删除,我会得到 self._amount 的 AttributeError 并且 self.amount 只有在我调用之后才会返回一个有效值invoice.amount = 5。这是处理它的正确方法吗?但这也会导致对象状态不一致,因为应用程序将在运行时更改实例属性。
我已经将数量作为发票的属性,以便更好地理解和可读性发票及其属性。只有当我们知道它的初始化/默认值时才使用类属性吗?
忽然笑
人到中年有点甜
相关分类