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

Python: Choose function in command line argument

在一个python程序中(有多个用户定义的函数),我想通过命令行参数指定要使用的函数。例如,我在python程序中有以下函数func1()、func2()、func3(),目前我使用的是以下技术:

1
python prog.py -func func2"

我的程序是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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()

我得到以下错误:

1
KeyError: 'func2'

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


func_type = globals()[args.func]()有关的两个简单错误

  • 您要查找的函数尚未定义。将函数定义移到此行上方。

  • 您正在调用函数,而不是在变量func_type中保存对它的引用。