我的节目" program.py"形式如下:
if __name__=='__main__':
args = parse_args()
main_function(args)
但是,如果我将program.py作为模块导入并运行program.main_function,我如何将解析后的参数结构作为参数传递给main_function?
这是parse_args()
的定义 def parse_args():
parser=argparse.ArgumentParser()
parser.add_argument(...)
args=parser.parse_args()
return args
答案 0 :(得分:0)
如果我们从标准库中讨论argparse.parse_args,只需明确传递参数列表。
例如,如果从命令行使用以下参数调用程序:
program --verbose --mode=3 file1 file2
shell将命令行拆分为五个单词,程序名称及其四个参数。这些内容存储在sys.argv。
中直接从Python实现相同的效果:
args = parse_args(['--verbose', '--mode=3', 'file1' , 'file2'])
main_function(args)
UPDATE - parse_args修改:
def parse_args(arglist=None):
parser=argparse.ArgumentParser()
parser.add_argument(...)
args=parser.parse_args(arglist)
return args