获取传递给函数的参数,使用线程返回
Posted
技术标签:
【中文标题】获取传递给函数的参数,使用线程返回【英文标题】:Get the parameters passed into function used a thread back 【发布时间】:2021-11-12 20:19:07 【问题描述】:我希望能够访问传递给已用于线程的函数的参数,以将函数的结果与传入的参数匹配。在 Python 中使用 ThreadPoolExecutor
。
data = [[url1, 1], [url2, 2], [url3, 3]]
lst = []
with concurrent.futures.ThreadPoolExecutor() as executor:
results = [executor.submit(check, var1, var2) for var1, var2 in data]
for f in concurrent.futures.as_completed(results):
result = f.result()
if result:
lst.append([result, ????])
所以我想要'????'最后一行是列表“数据”中与“结果”相对应的元素。
干杯
【问题讨论】:
【参考方案1】:您使用字典,其中键作为 Future
对象,值作为传递的参数。
results = executor.submit(check, var1, var2): (var1, var2) for var1, var2 in data
然后,当您想引用时,只需使用 lst.append([result, results[f]])
之类的东西
data = [[url1, 1], [url2, 2], [url3, 3]]
lst = []
with concurrent.futures.ThreadPoolExecutor() as executor:
results = executor.submit(check, var1, var2): (var1, var2) for var1, var2 in data
for f in concurrent.futures.as_completed(results.keys()):
result = f.result()
if result:
lst.append([result, results[f]])
【讨论】:
以上是关于获取传递给函数的参数,使用线程返回的主要内容,如果未能解决你的问题,请参考以下文章