我将如何使用字典调用函数?

How would I call a function by using a dictionary?

我最近发现了一些从不同目录调用函数的代码,如下所示:

modules["module_name"].function(parameters)

然后我想到了通过这种格式的列表调用函数(但不是模块;我已经知道怎么做),如下所示:

[function_name](parameters)

您不能在列表中调用这样的函数。我不知道你那里的语法是什么。这是不可能的,但你可以从下面的字典或变量中调用方法引用

如果你的函数像这样存储在字典中

def add(x, y):
   return x + y

some_dict = {
   'add' : add
}

然后就可以这样调用了

some_dict['add'](10, 10)

正在使用列表调用函数...您可以有一个函数列表并从索引中调用它

def foo(arg):
  print(arg)

list_of_functions = [foo]
list_of_functions[0](3)

这也适用于字典,因为函数只是指针,和其他任何东西一样。

但我相信你想通过变量的名称找到函数,在那种情况下,可能(idk,从来没有走这条路)对那个使用 globals

def foo(arg):
    print(arg)
    
function_name = 'foo'
globals()[function_name](3)

P.S。不过我还是想知道 2.7

如果列表是在其他模块中创建的:

module.py 它应该是这样的:

def add(a,b):
    return a+b

lista = [add]

你可以在你自己的模块中这样调用函数:

from module import lista

res = lista[0](2,3)
print(res)

这里要注意的是,函数应该在列出它之前定义,并且在创建列表的同一模块中。否则您的代码将被破坏。

别问为什么我也有python 2.7