使用PEP 484,有没有办法注释类方法返回该类的实例?
例如
@dataclass
class Bar:
foo: str
@classmethod
def new_from_foo(cls, foo) -> Bar
...
或者
@classmethod
def new_from_foo(cls, foo) -> cls
使用PEP 484,有没有办法注释类方法返回该类的实例?
例如
@dataclass
class Bar:
foo: str
@classmethod
def new_from_foo(cls, foo) -> Bar
...
或者
@classmethod
def new_from_foo(cls, foo) -> cls
诀窍是使用 aTypeVar
将cls
参数连接到返回注释:
from typing import TypeVar, Type
T = TypeVar('T')
class Bar:
@classmethod
def new_from_foo(cls: Type[T], foo) -> T:
...