안녕하세요. 이창준입니다.~
파이썬 코딩 중 막히는 부분이 있어 질문 드립니다. 2CPU에서는 해결 가능성을 확신합니다.^^
import concurrent.futures
class Test():
def __init__(self):
super().__init__()
self.job_list = ['aa', 'bb']
self.run()
def run(self):
def aa():
print('aa')
return
def bb():
print('bb')
return
with concurrent.futures.ThreadPoolExecutor() as executor:
# data_list = executor.submit(locals()['aa']()) # 정상 작동
data_list = [executor.submit(locals()[job]()) for job in self.job_list] # key에러 발생
Test()
위의 코드 중 run 메서드 내
# data_list = executor.submit(locals()['aa']()) 는 정상 작동되나,
data_list = [executor.submit(locals()[job]()) for job in self.job_list] 의 경우, 키 에러가 발생합니다. locals()내 각각의 메서드가 딕셔너리 형태로 나타납니다만 에러가 발생하네요.
고수분들께 도움을 요청합니다.
̷ θ ϰ ִµ ãҳ.^^
ϴ for job in job ȿ(scope) ž ϴ.
executor.submit(locals()[job]()
̷ Ǵµ data_list ϴ ֳ?
data_list = []
with concurrent.futures.ThreadPoolExecutor() as executor:
for job in self.job_list:
data_list.append(executor.submit(locals()[job]()))
ܼ for Ʈ ִ ϳ. ^^
㳪 !!!^^ ڼ ´ ....մϴ.