mypy 在 argparse 上出现“namespace has no attritube XXX”错误

问题描述 投票:0回答:1

我正在尝试使用

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。

python mypy
1个回答
0
投票

这个问题已在 mypy 版本 v0.520(2017 年 7 月)中通过 Pull 请求修复了#3451

© www.soinside.com 2019 - 2024. All rights reserved.