Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在多个类之间共享类变量_Python_Multithreading_Class - Fatal编程技术网

Python:在多个类之间共享类变量

Python:在多个类之间共享类变量,python,multithreading,class,Python,Multithreading,Class,我的问题是如何在多个类之间共享变量或缓冲区 e、 g.从多个类写入单个缓冲区,知道一些类正在线程化环境中运行 范例 期望的结果是包含要处理的data1和data2的缓冲区 然而,类my1中的缓冲区是在(init)部分中定义的,不能共享 有什么建议吗? 非常感谢你做错了 只需创建一个类为my1的对象,并将其传递给类为my2和my3的对象 # leave my1 as it is class my2(): # no need to inherit from my1 def __init__

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

期望的结果是包含要处理的data1和data2的缓冲区 然而,类my1中的缓冲区是在(init)部分中定义的,不能共享 有什么建议吗? 非常感谢

你做错了

只需创建一个类为
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)
如果确实希望将缓冲区绑定到
My1
类,可以使用静态类变量

class My1(object):
    buffer = [0] * 5
“某些类在线程环境中运行”问题中编写的
.insert()
方法不是线程安全的。
class My1(object):
    buffer = [0] * 5