对象与对象值python的实例

时间:2013-04-18 10:04:29

标签: python instance

我很难理解列表中对象的实例。 如何在不保存实例的情况下将对象的值保存到列表中? 这不可能不是吗? 下面的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

1 个答案:

答案 0 :(得分:1)

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

from copy import deepcopy

bougie.maximum = deepcopy(self.maximum)

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