我目前正在嘗試在 python 中匯入一個(自寫的)異步函式,但編譯器給了我一條錯誤訊息。請參閱下面的簡約示例(是的,我知道在此示例中異步沒有任何意義,但出于演示目的,我想它很好)。
在 example2.py 中,編譯器告訴我“await”只允許在異步函式 Pylance 中使用。如果我在 .ipynb 檔案中啟動相同的代碼,編譯器仍然會顯示錯誤,但如果我運行它,它會按預期作業。
我的第一個懷疑是我需要在匯入時將該函式標記為異步,但我找不到任何我會如何做到這一點的東西。我的另一個想法是這是一個編輯器問題,我需要為編譯器定義一個例外。但是當我使用VS Code時,我認為現在有人已經解決了這個問題。
有誰知道問題是什么/如何解決?我想了解為什么會出現這個問題。
例子.py:
async def add():
return 1 1
例子2.py:
from example import add
x =await add()
uj5u.com熱心網友回復:
閱讀Python Async/Await 檔案
import asyncio
from example import add
x = asyncio.run(add())
print(f'x={x}')
呼叫async函式回傳一個Promise.
您必須等待呼叫async函式生成的 Promise。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/471670.html
上一篇:單執行緒和異步的混淆
