我有一个看起来像这样的Python函数
def my_function() -> Any:
from optional_dependency import SomeClass
# This will fail if `optional_dependency` is not installed, I'm good with that.
return SomeClass()
我不是这个功能的超级粉丝,但我继承了它并且我无法破坏它(目前还不能)。我想知道是否有比
Any
更好的返回类型。
Pyright 抱怨我是否写作
-> SomeClass
-> "SomeClass"
如果我写的话,拉夫就会抱怨
-> "SomeClass": # type: ignore
有什么可以让 Pyright 和 Ruff(最好是 mypy)都开心吗?
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from optional_dependency import SomeClass
def my_function() -> "SomeClass":
from optional_dependency import SomeClass
return SomeClass()
如果您使用过
from __future__ import annotations
,通常可以跳过引号。另请参阅https://mypy.readthedocs.io/en/stable/runtime_troubles.html