parser的optional arguments和positional arguments

可选参数:optional arguments,如下面代码段中的:--epochs-taken

位置参数:positional arguments,如下面代码段中的:p1

# demo.py
import argparse


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("--epochs-taken", default=100, type=int, metavar='N')
    parser.add_argument("p1", type=int, metavar='param1')
    parser.add_argument("p2", type=int, metavar='param2')
    parser.add_argument("p3", type=int)
    parser.add_argument('--eest_batch_size', type=int, metavar='N',
                        help='testing batch size (default: 1)')
    args = parser.parse_args('10 5 1 --epochs-taken 20 --eest_batch_size 3'.split())
    parser.print_help()

    print(args.epochs_taken, args.p1+1, args.p2, args.p3, args.eest_batch_size)

参数metavar的作用:在parser.print_help()的时候,positional arguments只显示metavar的名字,optional arguments 中,变量名和metavar都会显示。

输出如下:

usage: demo.py [-h] [--epochs-taken N] [--eest_batch_size N] param1 param2 p3

positional arguments:
  param1
  param2
  p3

optional arguments:
  -h, --help           show this help message and exit
  --epochs-taken N
  --eest_batch_size N  testing batch size (default: 1)
20 11 5 1 3

注意:

1)调用参数:--epochs-taken需要用args.epoch_taken,必须用下划线,这是Python变量命名的规则,数字,字母和下划线。

2)参数赋值:赋值如下,和上述的输出结果是一样的。

args = parser.parse_args('10 5 1 --epo 20 --eest 3'.split())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值