【发布时间】:2021-09-13 18:25:37
【问题描述】:
为什么在 init 方法之外声明的变量不具有可加性属性? 例如我有以下课程:
class Trade:
allTrades = []
netPosition = 0
def __init__(self, qty):
self.quantity = qty
self.allTrades.append(self.quantity)
self.netPosition += self.quantity
allTrades(空列表)和netPosition变量定义在init方法之外,而数量变量定义在里面。
接下来,我创建我的类的 2 个对象并为它们中的任何一个打印 AllTrades 和 netPosition:
deal1=Trade('long', 50, 31)
deal2=Trade('long', 16, 39)
print(deal2.allTrades)
print(deal2.netPosition)
据我所知,allTrades (list) 变量是可加的,而 netPosition 不是:
print(deal2.allTrades) 返回 [50, 16]。
print(deal2.netPosition) 返回 16 但我认为它应该返回 66
如何让print(deal2.netPosition) 返回 66 而不是 16?
【问题讨论】:
-
列表是可变的,整数不是。
标签: python-3.x class variables init