Python 的 argparse 模块中具有混合类型 args 输入的参数解析器

Argument parser with mixed type of args input in Python's argparse module

我有以下脚本:

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']

我该怎么做?

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

所以你可以像这样添加一个转换器:

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

并传递为 type.