如何将控制权从异步函数更改为主代码并返回到异步函数?

How to change control from async function to main code back to async function?

是否可以将控件从一个异步函数更改为另一个异步函数或从一个异步函数更改为同步函数?

import asyncio

def main():
  print("Beginning")
  asyncio.run(async_func())
  print ("Middle")
  print("End")

async def async_func():
  print(1)
  await asyncio.sleep(1) 
  # I want to print "Middle" during this
  print(2)
  await asyncio.sleep(1) 
  # I want to print "End" during this
  print(3)

main()

你不能。除了控制结构之外,函数中的语句仍然是自上而下执行的。异步不会改变这一点。您不能将控制权“转移”到另一个函数的中间。