繁体   English   中英

Class 初始化未更新的空列表列表

[英]Class Initialization of a list of empty lists not updating

我有一个由 4 个具有设定长度的双端队列组成的列表。 我已经制作了该列表,希望它会像其他列表一样更新。 这是一个简单的例子:

class foo():
    def __init__(self):
        self.buffer_size = 300
        self.a = collections.deque([0]*self.buffer_size, self.buffer_size
        self.b = collections.deque([0]*self.buffer_size, self.buffer_size
        self.c = collections.deque([0]*self.buffer_size, self.buffer_size
        self.d = collections.deque([0]*self.buffer_size, self.buffer_size

        self.buffers = [list(self.a), list(self.b), list(self.c), list(self.d)]

    def do_something(self):
        ## here I append to these deques so that the values in them changes
        for i in range(20):
            self.a.append(i)
            self.b.append(i)
        

     def _buffers(self):
         ## buffers will still be all zeros
         print(self.buffers)
         
F = foo()
F.do_something()
F._buffers()

我的问题是为什么它仍然只是零 当其中的双端队列更改时,它为什么不更新? 关于如何实现这一点的想法?

原来问题在于我在 self.buffers 的初始化中将双端队列转换为列表。 我怀疑发生这种情况的原因是,当创建该列表时,它指向 memory 中完全不同的位置,并且不再受更改的影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM