我正在尝试从函数global variable
出于if __name__ == '__main__'
的目的调用的函数中访问Pool
块内声明的multiprocessing
。
但是它抛出了NameError
。
但是,如果我将相同的变量放在块外,代码就可以正常工作。
演示:
if __name__ == '__main__'
块外声明时from multiprocessing import Pool
foo = 'OKAY'
def f(x):
print(foo)
return x*x
if __name__ == '__main__':
p = Pool(2)
p.map(f, [1, 2])
输出:
OKAY
OKAY
if __name__ == '__main__'
中声明时:from multiprocessing import Pool
def f(x):
print(foo)
return x*x
if __name__ == '__main__':
foo = 'OKAY'
p = Pool(2)
p.map(f, [1, 2])
输出:
NameError: name 'foo' is not defined