是否可能有一个装饰器将类型注释添加到函数中,以便像mypy这样的静态类型检查器可以检测违规行为?
作为一个简单的尝试:
@returns(None)
def foo():
return 3应相当于:
def foo() -> None:
return 3但是,当将mypy定义为returns时,returns无法检测类型冲突。
def returns(type):
def inner(func):
func.__annotations__['return'] = type
return func
return inner发布于 2020-07-10 18:58:49
你不能用装饰师。mypy进行静态类型检查,这意味着所有类型都必须在编译时可用。修饰器在运行时添加注释,这对mypy来说太晚了,无法使用它。
https://stackoverflow.com/questions/62840461
复制相似问题