更新类中的列表,在lis中

2024-09-26 22:07:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python3中,我有一个类列表,每个类都有一个列表。我很难更新那些名单。因此:

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实例检索不同的值。你知道吗

出于某种原因,items列表中的每个Item实例都具有相同的prices值,该列表包含每个Item实例的newPrice值。我希望这足够清楚。你知道吗

我错过了什么?你知道吗


Tags: 实例函数self列表initdefitemsitem
1条回答
网友
1楼 · 发布于 2024-09-26 22:07:49

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

class Item():

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

相关问题 更多 >

    热门问题