【发布时间】:2020-10-03 05:48:15
【问题描述】:
下面的代码可以运行,但是...
from concurrent.futures import ThreadPoolExecutor as PoolExecutor
date = "2020-06-12"
adjusted_symbol_list = ["AAPL", "MSFT", "NFLX"]
date_variable = get_specific_date_from_web()
def filter_2ndconfirm(symbol):
if date == "2020-06-12":
if make_calc() == True:
print(symbol)
def filter_2ndconfirm_workers(filter_2ndconfirm_workers, adjusted_symbol_list):
with PoolExecutor(max_workers=5) as executor:
for _ in executor.map(filter_2ndconfirm_workers, adjusted_symbol_list):
pass
filter_2ndconfirm_workers(filter_2ndconfirm, adjusted_symbol_list)
get_specific_date_from_web() 在几个 http 连接后进行计算并获取日期,因此应该只工作一次。上面的代码可以工作,但我怎样才能插入另一个变量,我的意思是 date_variable 到 filter_2ndconfirm 函数?我可以像下面这样,但我不想为每个符号查询网络:
def filter_2ndconfirm(symbol):
date_variable = get_specific_date_from_web()
if date == date_variable:
print(symbol)
谢谢
【问题讨论】:
-
不要在 Python 中得到它,任何时候 API 为您提供存储或传递 one 不透明值的地方,您始终可以提供元组或列表,或字典,或自定义类的实例,等等。
标签: python multithreading parallel-processing threadpool