0

如果我有一个 python 类

from multiprocessing import Process

class A(Process):
    def run(self):
        self.var = "asdf"

    def pprint(self):
        print(self.var)

if __name__ == "__main__":
    foo = A()
    foo.start()
    foo.pprint()
    bar = A()
    bar.pprint()

我得到回溯错误

Traceback (most recent call last):
  File "simple.py", line 13, in <module>
    foo.pprint()
  File "simple.py", line 8, in pprint
    print(self.var)
AttributeError: 'A' object has no attribute 'var'

我可以访问在 run 函数中定义的实例变量,以及在类范围内定义的其他函数吗?

4

2 回答 2

0

run()函数在另一个进程中执行,并且变量仅pprint()在当前进程中执行时在那里创建。例如,您可以使用 aManagerdict存储所有进程通用的数据,或者使用管道或队列交换数据(阅读相关文档)。

于 2013-08-06T18:13:51.497 回答
0
from multiprocessing import Process

class A(Process):  
  def __init__(self, value):
    self.var = value  
  def run(self):
    self.var = "asdf"
  def pprint(self):
    print(self.var)


foo = A("asdf")
foo.start()
foo.pprint()
bar = A("qwerty")
bar.pprint()
于 2013-08-06T18:03:10.353 回答