0

파이썬에서 멀티 스레드를 수행하려고 시도하고 있으며 picklability 요구 사항에 대해 머리를 쓰려고 노력하고 있으며 코드 OOP를 얼마나 유지할 수 있는지 알고 있습니다.파이썬, 클래스 내에서 ThreadPoolExecutor에 모듈 수준 함수를 전달할 수 있습니까?

모듈 수준에서 정의 된 함수를 전달하는 클래스 내에서 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도 가져와야합니까?

+2

힌트 : 사용해보기! 무슨 일이 일어나는지 이해하지 못하면 질문을하십시오. –

답변

2

foo 변수는 bar이 정의 된 동일한 모듈에서 모듈 수준에서 범위가 지정됩니다. 코드는 foo을 가져 오지 않고 정상적으로 실행되어야합니다. 자세한 내용은 Short Description of the Scoping Rules?을 참조하십시오.