如何为子解析器设置 argument_default=argparse.SUPPRESS?
How to set argument_default=argparse.SUPPRESS for subparsers?
我不想在参数命名空间中获取未设置的选项。但是 argparse.SUPPRESS
似乎没有传递给子解析器。
下面的代码print(args)
得到了结果。由于 sub_arg2 和 sub_args3 未设置,如何在命名空间中使用它们?
Namespace(sub_arg1='1', sub_arg2=[], sub_arg3=None, subparser='sub1')
import argparse
parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)
# parser.add_argument('main_arg1')
# parser.add_argument('main_arg2', nargs='*')
subparsers = parser.add_subparsers(dest='subparser')
sparser = subparsers.add_parser('sub1')
sparser.add_argument('sub_arg1')
sparser.add_argument('sub_arg2', nargs='*')
sparser.add_argument('sub_arg3', nargs='?')
args = parser.parse_args('sub1 1'.split())
print(args)
add_parser
接受 ArgumentParser
构造函数接受的任何参数:
sparser = subparsers.add_parser('sub1', argument_default=argparse.SUPPRESS)
我不想在参数命名空间中获取未设置的选项。但是 argparse.SUPPRESS
似乎没有传递给子解析器。
下面的代码print(args)
得到了结果。由于 sub_arg2 和 sub_args3 未设置,如何在命名空间中使用它们?
Namespace(sub_arg1='1', sub_arg2=[], sub_arg3=None, subparser='sub1')
import argparse
parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)
# parser.add_argument('main_arg1')
# parser.add_argument('main_arg2', nargs='*')
subparsers = parser.add_subparsers(dest='subparser')
sparser = subparsers.add_parser('sub1')
sparser.add_argument('sub_arg1')
sparser.add_argument('sub_arg2', nargs='*')
sparser.add_argument('sub_arg3', nargs='?')
args = parser.parse_args('sub1 1'.split())
print(args)
add_parser
接受 ArgumentParser
构造函数接受的任何参数:
sparser = subparsers.add_parser('sub1', argument_default=argparse.SUPPRESS)