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
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 に答える
0

run()関数は別のプロセスで実行され、変数は現在のプロセスで実行されている間にのみ作成さpprint()れます。たとえば、 a を使用してManagerを取得し、dictすべてのプロセスに共通のデータを格納したり、パイプまたはキューを使用してデータを交換したりできます (これについてはドキュメントを参照してください)。

于 2013-08-06T18:13:51.497 に答える