支持的 Python 特性(Supported Python features)

在 mypy wiki 中维护了一份不支持的 Python 特性列表:

方法和函数的运行时定义(Runtime definition of methods and functions)

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