1

我的问题是如何在多个类之间共享变量或缓冲区,例如从多个类写入单个缓冲区,知道某些类正在线程环境中运行示例

class my1(object):
    def __init__(self):
        self.buffer=[0]*5
        self.size=0
    def insert(self,data):
        self.data=data
        self.buffer[self.size]=self.data
        self.size+=1

class my2(my1):
    def __init__(self):
        self.insert('data1')

class my3(my1):
    def __init__(self):
        self.insert('data2')

所需的结果将是包含要处理的 data1 和 data2 的缓冲区,但 my1 类中的缓冲区是在 ( init ) 部分中定义的,并且不能共享任何建议?非常感谢

4

2 回答 2

0

你这样做是错的。

只需创建一个类对象my1并将其传递给类对象my2my3.

# leave my1 as it is

class my2(): # no need to inherit from my1
    def __init__(self, my1obj): # buffer is object of my1
        my1obj.insert('data1')

class my3():
    def __init__(self, my1obj):
        my1obj.insert('data2')

mybuffer = my1()
my2obj = my2(mybuffer)
my3obj = my3(mybuffer)
于 2013-05-16T12:24:02.613 回答
0

如果你真的希望缓冲区绑定到My1类,你可以使用静态类变量

class My1(object):
    buffer = [0] * 5
于 2013-05-16T12:26:47.197 回答