argparse 输入范围函数

argparse input range function

我需要在命令行中传递一个函数并使用 argparse 进行解析。 我该怎么做?

例如。 python program.py --params a=range(1, 10, 1), b=range(2, 5, 1)...

我测试过: parser.add_argument('-p', "--params", type=json.loads)

但是当我尝试启动 cmd 时: python program.py --p {"a": range(1, 10, 1}

returns 这个错误: error: argument -p/--params: invalid loads value: '{"a": range(1,10,1)}'

您应该为此创建自己的自定义函数并将其传递给 type

例如

>>> def hyphenated(string):
...     return '-'.join([word[:4] for word in string.casefold().split()])
...
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument('short_title', type=hyphenated)
>>> parser.parse_args(['"The Tale of Two Cities"'])
Namespace(short_title='"the-tale-of-two-citi')

更多信息:here