在使用Asgiref的sync_to_async函数时,可能会在Pycharm中收到以下警告:“classmethod返回不正确的类型'function'。收到的类型是'Type[Coroutine]',但该函数似乎是类方法的'classmethod修饰符”。
出现这个问题的原因是,Pycharm无法正确解析sync_to_async函数的返回类型。解决这个问题的方法是,将返回类型的注释添加到函数定义中。
示例代码:
from asgiref.sync import sync_to_async from typing import Coroutine
class Example: @classmethod async def do_something(cls) -> None: await sync_to_async(print)("Hello, World!")
class Example: @classmethod async def do_something(cls) -> Coroutine: await sync_to_async(print)("Hello, World!")