我想知道是否有人知道任何神奇的函数可以告诉我运行的函数是同步调用还是异步调用的。长话短说,我想做以下几点:
def fsync():
was_called_async() # >>> False
async fasync():
was_called_async() # >>> True
fsync()
await fasync()
这听起来可能有点奇怪,我同意。原因是我正在尝试实现一个类似于^{
from toolbox.cofunc import cofunc
import asyncio
import time
@cofunc
def hello():
time.sleep(0.01)
return "hello sync world!"
@hello.register
async def _():
await asyncio.sleep(0.01)
return "hello async world!"
async def main():
print(hello()) # >>> "hello sync world!"
print(await hello()) # >>> "hello async world!"
asyncio.run(main())
但是,它使用了^{await
)。如果有人知道另一种选择,那就太好了
只是没有一个好的方法来做你想做的事情
函数“同步调用”与“异步调用”之间没有实际区别。无论哪种方式,函数都只是被调用
最接近差异的是调用方对返回值的处理,但即使是查找
await
也不是一个好主意,因为或
直觉上会被认为是“异步的”
到目前为止,最可靠的选择是只有两个功能
相关问题 更多 >
编程相关推荐