我正在尝试在python中执行多线程,我仍然试图了解可挑选性要求以及我可以保留多少代码OOP。
你能从一个类中运行ThreadPoolExecutor,并在模块级别定义一个函数吗?我的设置如下:
moduleA.py:
def foo():
run some stuff
class bar(object):
def runThreads(self):
executor = futures.ThreadPoolExecutor(5)
executor.submit(foo) # do this 5 times in some sort of loop
我希望能够从一个单独的模块中调用它
moduleB.py
from moduleA import bar
A = bar()
A.runThreads()
这会有用吗?我是否还需要导入foo?
答案 0 :(得分:2)
foo
变量的作用域是在模块级别,在bar
定义的同一模块中。您的代码应运行良好而不导入foo
。有关详细信息,请参阅Short Description of the Scoping Rules?。