如何为子解析器设置 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)