Wie rufen wir eine normale Funktion auf, bei der eine Coroutine erwartet wird?
Betrachten Sie eine Coroutine, die eine andere Coroutine aufruft:
async def foo(bar):
result = await bar()
return result
Dies funktioniert gut, wennbar
ist eine Coroutine. Was muss ich tun (d. H. Womit muss ich den Anruf an @ beendenbar
) damit dieser Code das Richtige tut, wennbar
ist eine normale Funktion?
s ist durchaus möglich, eine Coroutine mit @ zu definiereasync def
, auch wenn es niemals asynchron arbeitet (d. h. niemals @ verwendeawait
). Bei der Frage wird jedoch gefragt, wie eine reguläre Funktion umbrochen, geändert oder aufgerufen werden soll.bar
im Code fürfoo
so dassbar
kann erwartet werden.