如何通过索引选择来调用函数

时间:2015-03-21 19:03:57

标签: python list function indexing

我想知道是否可以存储然后调用函数,就像从列表中调用索引项一样?

在下面的代码中,x表示我尚未确定为此程序中的最终函数的索引号。稍后,我将添加代码以使用其索引函数打印列表,但是现在我想让这个程序工作。索引0标记为空白,因为输入零可能会使某些用户感到困惑。

我所说的相关代码:

print("Weights and Measurements will convert the Imperial measurments, into the corresponding metric measurement.")

programSelect = eval(input("Please choose a program from the list below, with its corresponding index number (1-x):" ))
programs = ["blank", "def tempConvert", "def distance"]

用户可以通过索引编号选择功能。我不知道如何激活def tempConvert或def distance之类的各个函数,并显示相应的菜单。

这样想。

命令提示符将读取

  
    
      

"重量和测量值会将英制测量值转换为相应的公制测量值。"

             

"请从下面的列表中选择一个程序及其相应的索引号(1-x):"

    
  

假设我输入1来选择def tempConvert函数

然后应该从def tempConvert函数

中显示以下内容

"请使用Celsius或Fahrenheit" "请输入摄氏温度:" "请输入华氏温度:"

我知道我需要处理各个程序,以防止用户在摄氏和华氏温度下插入温度。目前,该程序独立运作,但我希望它能在更大的程序中运行。

1 个答案:

答案 0 :(得分:1)

是的,这很容易做到:

def function1():
    print "hi, I'm function1"
def function2():
    print "hi, I'm function2"
list_of_functions = [function1, function2]
....
list_of_functions[x]() # this calls the function at index x

请注意,这些函数称为function1,而不是"def function1";每个函数都是python中的一个对象,可以存储在列表,字典或变量中,就像存储整数,字符串或自己的类实例一样。