【发布时间】:2021-12-19 22:47:50
【问题描述】:
如何确定函数或方法是普通函数还是异步函数?我希望我的代码能够自动支持正常或异步回调,并且需要一种方法来测试传递的函数类型。
async def exampleAsyncCb():
pass
def exampleNomralCb():
pass
def isAsync(someFunc):
#do cool dynamic python stuff on the function
return True/False
async def callCallback(cb, arg):
if isAsync(cb):
await cb(arg)
else:
cb(arg)
根据传递的函数类型,它应该正常运行还是等待。我尝试了各种方法,但不知道如何实现isAsync()。
【问题讨论】:
-
但是...但是
True/False除以0! :O -
请注意,任何给定的异步函数都可以是 coroutine function 或 asynchronous generator function ,请参阅我的回答了解详情
标签: python python-3.x asynchronous python-3.5 coroutine