在runtim上访问变量的python3类型注释

2024-04-25 19:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以在运行时访问变量的类型注释,方法和函数可以使用inspect.getmembers()中的__annotations__条目。你知道吗

> a:Optional[str]=None
> type(a)
<class 'NoneType'>

> a:str=None
> type(a)
<class 'NoneType'>

谢谢。你知道吗


Tags: 方法函数none类型type条目optionalclass
1条回答
网友
1楼 · 发布于 2024-04-25 19:54:04

locals()globals()跟踪__annotations__键中变量的注释。你知道吗

>>> from typing import *
>>> a: Optional[int] = None
>>> locals()['__annotations__']
{'a': typing.Union[int, NoneType]}
>>> locals()['__annotations__']['a']
typing.Union[int, NoneType]
>>> 
>>> foo = 0
>>> bar: foo
>>> locals()['__annotations__']['bar']
0
>>>
>>> baz: List[str]
>>> locals()['__annotations__']['baz']
typing.List[str]

相关问题 更多 >