在Python的argparse模块中使用混合类型的args输入的参数解析器

时间:2015-12-04 03:18:40

标签: python argparse

我有以下脚本:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-s",metavar="",help="some help",type=int,default=0.5)
print parser.parse_args()

第3行,我希望类型为intstring。因此,用户可以使用其中一个值[0, 0.1, 0.2, 0.3, 0.5, 'best']

我该怎么做?

1 个答案:

答案 0 :(得分:2)

type参数可以被视为转换函数而不是数据类型。

所以你可以添加这样的转换器:

def int_or_str(value):
    try:
        return int(value)
    except:
        return value

并传递为type