更新列表中类的列表

时间:2015-10-16 17:39:35

标签: python list class python-3.x

在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}}实例。我希望这很清楚。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您应该将价格定义为实例属性,而不是类属性,因为类属性在所有实例之间共享:

class Item():

    def __init__(self, _prices):
        self.newPrice = 0
        self.price = _prices