如何将子语法传递给子解析器的默认函数?

2024-05-19 12:37:07 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有如下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()

假设用户调用我的脚本时使用:

^{pr2}$

调用我的函数execute-z但同时也传递子参数N的正确/最佳实践方法是什么?在

注意,对于sub-argumentsomethingZ我已经将默认函数调用设置为execute\u z,但是我如何传递这个函数所需的后续子参数呢?即,n?因为函数定义是:

def execute_z(n):
  # n is an integer value definining number of times to loop

对脚本的典型调用是:

myScript.py somethingZ 300

我怎么把300分传给某个人?在


Tags: to函数脚本loopaddparserexecutehelp
1条回答
网友
1楼 · 发布于 2024-05-19 12:37:07

我想使用setdefaultsargparse示例解释了如何使用函数?在

args。可能看起来像

Namespace(func=execute_z, N=1000)

因此,您应该能够使用:

^{pr2}$

相关问题 更多 >