类型错误:“必需”是位置参数的无效参数

gkr*_*2d2 3 python

我想为我的 Python3 代码提供可选参数。我在用argparse

def main():

    parser = argparse.ArgumentParser(description="Solution")
    parser.add_argument("size", help="sector size")
    parser.add_argument("name", help="Disk name", required = False)
    args = parser.parse_args()

    sec_size = args.size
    if not args.name :
        print('Will carry only few sets of operations')
    else :
        name = args.name
Run Code Online (Sandbox Code Playgroud)

它给出了错误

Traceback (most recent call last):
  File "pythoncode.py", line 189, in <module>
    main()
  File "pythoncode.py", line 145, in main
    parser.add_argument("name", help="Disk name", required = False)
  File "/usr/lib64/python3.7/argparse.py", line 1335, in add_argument
    kwargs = self._get_positional_kwargs(*args, **kwargs)
  File "/usr/lib64/python3.7/argparse.py", line 1447, in _get_positional_kwargs
    raise TypeError(msg)
TypeError: 'required' is an invalid argument for positionals
Run Code Online (Sandbox Code Playgroud)

有人可以指出我在这里做错了什么吗?谢谢。

Aru*_*tel 13

required=False只能用于可选参数。对于可选参数,您应该使用--

parser.add_argument("--name", help="Disk name", required = False)
Run Code Online (Sandbox Code Playgroud)

当没有时--,Python 将其视为位置参数。因此所需的函数参数对于位置参数来说是无效的。