![](/img/trans.png)
[英]For functions that take in an indeterminate number of arguments in python, how to pass in an indeterminate number of arguments
[英]How to pass variable number of functions as arguments in Python
我想使用方法assesion.run()
,它需要指向异步函数的指针。 函数的数量不同,所以我尝试制作一个函数列表并将其分布在.run()
参数部分。 但是当将它们附加到列表时,它们会立即调用。 请如何生成可变数量的函数?
from requests_html import AsyncHTMLSession
asession = AsyncHTMLSession()
urls = [
'https://python.org/',
'https://reddit.com/',
'https://google.com/'
]
async def get_html(url):
r = await asession.get(url)
return r
functionList = []
for url in urls:
functionList.append(get_html(url))
# results = asession.run(fn1, fn2, fn3, fn4, ...)
results = asession.run(*functionList)
for result in results:
print(result.html.url)
您必须传递异步函数而不是协程。 run 函数调用参数来创建协程,然后创建任务。
因此,当您传递协程时,请运行调用它们而不是创建任务。
这些函数是不带参数调用的,所以你应该使用 functools.partial 来放入参数:
from functools import partial
...
for url in urls:
functionList.append(partial(get_html, url))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.