首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加带装饰符的可校验类型注释

添加带装饰符的可校验类型注释
EN

Stack Overflow用户
提问于 2020-07-10 18:39:08
回答 1查看 120关注 0票数 0

是否可能有一个装饰器将类型注释添加到函数中,以便像mypy这样的静态类型检查器可以检测违规行为?

作为一个简单的尝试:

代码语言:javascript
复制
@returns(None)
def foo():
    return 3

应相当于:

代码语言:javascript
复制
def foo() -> None:
    return 3

但是,当将mypy定义为returns时,returns无法检测类型冲突。

代码语言:javascript
复制
def returns(type):
    def inner(func):
        func.__annotations__['return'] = type
        return func
    return inner
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-10 18:58:49

你不能用装饰师。mypy进行静态类型检查,这意味着所有类型都必须在编译时可用。修饰器在运行时添加注释,这对mypy来说太晚了,无法使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62840461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档