如何获取 class 成员的类型注释?
How to get type annotations for class members?
考虑以下代码:
from typing import Optional
class Foo:
def __init__(self):
self.baz: Optional[int] = None
如何在代码中找到 baz 的类型 Optional[int]
?如果我这样做 type(Foo().baz)
,我只会得到 None
。
您可以在 class 正文中定义实例属性类型,如 PEP
中所述
from typing import Optional, get_type_hints
class Foo:
baz: Optional[int]
def __init__(self):
self.baz = None
get_type_hints(Foo)
Out[26]: {'baz': typing.Union[int, NoneType]}
请注意 typing.Union[int, NoneType]
与 Optional[int]
相同。
考虑以下代码:
from typing import Optional
class Foo:
def __init__(self):
self.baz: Optional[int] = None
如何在代码中找到 baz 的类型 Optional[int]
?如果我这样做 type(Foo().baz)
,我只会得到 None
。
您可以在 class 正文中定义实例属性类型,如 PEP
中所述from typing import Optional, get_type_hints
class Foo:
baz: Optional[int]
def __init__(self):
self.baz = None
get_type_hints(Foo)
Out[26]: {'baz': typing.Union[int, NoneType]}
请注意 typing.Union[int, NoneType]
与 Optional[int]
相同。