首页 > 解决方案 > 调用使用 argparse 的函数

问题描述

如何调用argparse通过另一个函数使用的函数。

def func():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('env_name', type=str)
    parser.add_argument('--exp_name', type=str, default='vpg')
    args = parser.parse_args()

    ~~~ other code here that uses 'args'~~~

def wrap_func()
    func(ARGUMENT_PASSING_NOT_VIA_CMD)

wrap_func()

我也想调试它,所以os.system(...)对我不利。

标签: pythonargparse

解决方案


在您的示例中,您只需向func函数添加参数列表,然后将其传递给parse.parse_args(). 也许您应该将import argparse与其他导入一起移动到脚本的开头。

def func(arg_list):
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('env_name', type=str)
    parser.add_argument('--exp_name', type=str, default='vpg')
    args = parser.parse_args(arg_list)

    ~~~ other code here that uses 'args'~~~

def wrap_func()
    func(list_of_arguments_you_want_to_pass)

wrap_func()

您可以在此处找到一些示例。


推荐阅读