python - 如何获取类成员的类型注释?

标签 python typing inspect

考虑以下代码:

from typing import Optional

class Foo:
    def __init__(self):
        self.baz: Optional[int] = None

如何在代码中找到 baz 的类型为 Optional[int]?如果我输入 type(Foo().baz),我只会得到 None

最佳答案

您可以在类主体中定义实例属性类型,如 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] 相同。

关于python - 如何获取类成员的类型注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59173744/

相关文章:

python - 如何在 Python 中获取当前模块中所有类的列表?

ruby - about_classes.rb 在 ruby​​ 中检查和 self

Python:检查异常引发的位置

python - 使用 python 3 创建虚拟环境时如何修复看似无限循环?

python - 通过 subprocess.call 设置 env 以在远程 Linux 计算机上运行 python 脚本时出错

python - 在类型别名中使用泛型

debugging - 我们可以查看部分推断的输入信息吗?来自 Ocaml 顶层/编译器的程序无法编译?

python - 将回归扩展到 Matplotlib 中的数据之外

python - 如何使用 Pyramid 和 socketio 向特定用户广播事件

JavaScript 类型。试图了解它的幕后工作原理