支持的 Python 特性(Supported Python features)¶
在 mypy wiki 中维护了一份不支持的 Python 特性列表:
方法和函数的运行时定义(Runtime definition of methods and functions)¶
默认情况下,如果你在类或模块的定义之外添加一个函数,mypy 会发出警告——但仅当这对类型检查器可见时。这仅影响静态检查,因为 mypy 在运行时不会执行额外的类型检查。你可以轻松地绕过这个限制。例如,你可以使用动态类型代码或 Any 类型的值,或者可以使用 setattr()
或其他反射特性。然而,如果你决定这样做,需要谨慎行事。如果不加区别地使用,可能会在有效使用静态类型时遇到困难,因为类型检查器无法看到运行时定义的函数。