Python:在命令行参数中选择函数

时间:2017-04-23 23:39:35

标签: python command-line-arguments

在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'

如果有人能告诉我如何实现所需的功能,我将非常感激。

1 个答案:

答案 0 :(得分:2)

func_type = globals()[args.func]()

相关的两个简单错误
  1. 您正在寻找的功能尚未定义。将函数定义移到此行上方。

  2. 调用该函数,而不是在变量func_type中保存对它的引用。