在Python 3中,我有一个类列表,每个类都有一个列表。我在更新这些列表时遇到了困难。如此:
class Item():
newPrice = 0
prices = [0]
def __init__(self, _prices):
self.prices = _prices
items = [Item([10]), Item([20]), Item([30])]
for item in items:
item.newPrice = SomeFunction()
item.prices.append(item.newPrice)
函数SomeFunction()
是一个复杂的函数,它为每个Item
实例检索不同的值。
出于某种原因,Item
列表中的每个items
实例都具有prices
的相同值,该列表包含每个{newPrice
的值Item
1}}实例。我希望这很清楚。
我错过了什么?
答案 0 :(得分:0)
您应该将价格定义为实例属性,而不是类属性,因为类属性在所有实例之间共享:
class Item():
def __init__(self, _prices):
self.newPrice = 0
self.price = _prices