在Python程序中(具有多个用户定义的函数),我想要通过命令行参数指定使用哪个函数。例如,我在我的Python程序中有以下函数, func1(), func2(), func3(),我正在使用目前有以下技术:
python prog.py -func func2"
我的程序是这样的:
from __future__ import division
import numpy as np
import argparse
parser = argparse.ArgumentParser(description='')
parser.add_argument('-func', help='')
args = parser.parse_args()
func_type = globals()[args.func]()
def func1():
print "something1"
def func2():
print "something2"
def func3():
print "something3"
func_type()
我收到以下错误:
KeyError: 'func2'
如果有人能告诉我如何实现所需的功能,我将非常感激。
答案 0 :(得分:2)
与func_type = globals()[args.func]()
您正在寻找的功能尚未定义。将函数定义移到此行上方。
您调用该函数,而不是在变量func_type
中保存对它的引用。