Python:如何显示嵌套类型信息?

Mar*_*son 1 python

Python 是否包含将显示嵌套类型信息的内置类型变体,像这样?

>>> extended_type([()])
<class 'list' containg <class 'tuple'>>
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 6

不可以。类型提示和typing模块以及 PEP 585 为此提供了一个表示法(即Python 3.9list[tuple]List[tuple]之前的版本),但这些只能由像 MyPy 这样的外部类型检查器进行检查;没有在运行时检查它的能力。

PEP 585 on Making isinstance(obj, list[str]) 执行运行时类型检查

此功能需要迭代集合,这在其中一些是破坏性操作。这个功能本来很有用,但是在 Python 中实现类型检查器来处理复杂类型、嵌套类型检查、类型变量、字符串前向引用等超出了这个 PEP 的范围。