如果我有如下的Argparse设置:
parser = argparse.ArgumentParser(description='test.')
subparsers = parser.add_subparsers(help='sub-command help')
parser_somethingX = subparsers.add_parser('somethingX', help='generate X')
parser_somethingY = subparsers.add_parser('somethingY', help="generate Y")
parser_somethingZ = subparsers.add_parser('somethingZ', help='generate Z')
parser_somethingZ.add_argument('N', type=int,help='times to loop')
parser_somethingZ.set_defaults(func=execute_z)
args = parser.parse_args()
假设用户使用以下命令调用我的脚本:
myScript.py somethingZ 1000
调用我的函数execute_z 的正确/最佳实践方法是什么,但也传递了子参数 N ?
请注意,对于sub参数 somethingZ ,我将默认函数调用设置为 execute_z ,但如何将此函数传递给所需的后续子参数还有?即, n ?因为函数定义是:
def execute_z(n):
# n is an integer value definining number of times to loop
对我的脚本的典型调用是:
myScript.py somethingZ 300
如何将 300 传递给 somethingZ ?
答案 0 :(得分:0)
我认为使用argparse
的{{1}}示例解释了如何使用该功能?
看看setdefaults
。它可能看起来像
args
所以你应该可以使用:
Namespace(func=execute_z, N=1000)