预期类型为“_ActionsContainer”,却得到了“str”

问题描述 投票:0回答:0
parser.add_argument('-shortarg', '--longarg', type=type, help="help")
                    ^^^^^^^^^^^

我从 argparse 收到一个错误,我认为参数的“self”参数是字符串值(短参数名称)。在问题菜单中,它显示

Expected type '_ActionsContainer', got 'str' instead
。运行程序时出现的错误是:

Traceback (most recent call last):
  File "NAME OF PROGRAM", line 4, in <module>
    parser.add_argument('-shortarg', "--longarg", type=type, help="help")
  File "argparse.py", line 1401, in add_argument
    chars = self.prefix_chars
AttributeError: 'str' object has no attribute 'prefix_chars'

我猜这是“_ActionsContainer”具有的属性,但“str”没有。

根据docs,我认为这种情况不应该发生——其中使用的命令(参见第一个代码块)会出现相同的错误。


我尝试在所有命令之前添加一个额外的字符串,其中包含我的参数的“名称”。我希望它能够接管 self 参数并可能与格式匹配。

实际发生的情况是它接管并导致了同样的错误。删除引号会出现未解决的参考错误。

parser.add_argument('argname', '-shortarg', '--longarg', type=type, help="help")

将参数的顺序更改为位置参数位于关键字之前也有其自身的错误。

parser.add_argument(type=type, help="help", '-shortarg', '--longarg')
python types argparse
© www.soinside.com 2019 - 2024. All rights reserved.