0

我很难理解列表中对象的实例。如何在不保存实例的情况下将对象的值保存到列表中?这是不可能的不是吗?下面的colde有效,但我想避免使用.value,因为我可能有几个参数..不确定我是否足够清楚..

class BougieBuffer:
    def __init__(self):
        self.bougiebuffer=deque(maxlen = 10000)
        self.maximum = Maximum()

    def update(self,bougie):
        self.maximum.value = random.randint(-1,1)
        bougie.maximum.value = self.maximum.value
        self.bougiebuffer.append(bougie)
        print len(self.bougiebuffer)
        for i in range (len(self.bougiebuffer),0,-1):
            print self.bougiebuffer[i-1].prixFermeture,   self.bougiebuffer[i-1].maximum.value 

我会自然地写下类似下面的东西,但显然这不起作用,它为所有人返回相同的值

bougie.maximum = self.maximum
4

1 回答 1

1

您想创建实例的副本Maximum()分配给bougie.maximum属性;使用copy.copycopy.deepcopy

from copy import deepcopy

bougie.maximum = deepcopy(self.maximum)

deepcopy如果有任何属性Maximum是可变的,您将需要;a list,dictset其他自定义类实例都是可变的,但整数和字符串之类的东西不是。

于 2013-04-18T10:28:06.297 回答