我正在尝试使用
mypy
进行类型注释。我写了一个简单的test.py
import argparse
args = None
parser = argparse.ArgumentParser()
parser.add_argument('--dev', '-d', action='store_true', required=False)
args = parser.parse_args()
args.dev = True
运行
mypy test.py
后,出现错误:
test.py:8:错误:“命名空间”没有属性“dev”
我的假设是命名空间类的属性是动态创建的,所以它们无法被
mypy
检测到?用 setattr(args, 'dev', True)
替换最后一行后,我能够摆脱此错误消息,但这看起来不对......有人可以帮助我理解这个问题吗?我正在使用Python 3.6.1。
这个问题已在 mypy 版本 v0.520(2017 年 7 月)中通过 Pull 请求修复了#3451