我的问题是如何在多个类之间共享变量或缓冲区 例如从多个类写入单个缓冲区,知道某些类在线程环境中运行 示例
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 )部分中定义的,无法共享 有什么建议? 非常感谢
答案 0 :(得分:0)
你做错了。
只需创建一个类my1
的对象,并将其传递给类my2
和my3
的对象。
# 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)
答案 1 :(得分:0)
如果确实希望将缓冲区绑定到My1
类,则可以使用静态类变量
class My1(object):
buffer = [0] * 5