可选关键字参数argpar

2024-03-28 21:35:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图制作一个程序,其中有3个不同的关键字参数输入选项(用户必须选择其中一个):

1)第一个是当用户输入两个整数时,程序将被这样调用:

python myProgram.py -s 3 -p 9

2)第二种情况是当用户输入一串1和0时:

^{pr2}$

3)第三个输入与第二个输入相同,但存储在不同的变量中

python myProgram.py -l 1101011010

我如何实现这一点?我读过关于argparse和nargs='?'但是我很困惑,我不知道怎么做。在


Tags: 用户py程序参数选项argparse情况整数
1条回答
网友
1楼 · 发布于 2024-03-28 21:35:26

{3可根据需要使用^和选项创建组。{{cd2>如果你要手动测试的话:

parser = argparse.ArgumentParser(prog='PROG')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('-s', type=int)
parser.add_argument('-p', type=int)

def binary(value):
    # just test if the value is a valid binary string
    try:
        int(value, 2)
    except ValueError:
        raise argparse.ArgumentTypeError('{!r} is not a valid binary value'.format(value))
    return value

group.add_argument('-r', type=binary)

group.add_argument('-l', type=binary)

args = parser.parse_args()
if args.s and args.p is None:
    parser.error('You must use -p when -s is selected')

相关问题 更多 >