如何将字典键与函数关联?

Mic*_*eta 3 python dictionary

我的应用程序有一个完整的函数类,可以执行各种操作.这些操作与1和仅1个字典键相关.如何将字典键与其各自的功能相关联?该工具的目标是在给定一组键时使用适当的函数集.

这就是我目前的工作方式:

class MyClass:

    def FuncA(self):
        # Some code -----------------------------

    def FuncB(self):
        # Some code -----------------------------

myDict["Objective A"] = MyClass.FuncA()
myDict["Objective B"] = MyClass.FuncB()
Run Code Online (Sandbox Code Playgroud)

由于我的程序的性质,将使用的密钥集可能会不时更改.因此,对我进行硬编码是没有意义的.我希望能够遍历我的一组键并运行适当的函数.请记住,ObjectiveA与FuncA相关联.因此,如果ObjectiveA出现在我的密钥列表中,则需要调用FuncA以处理某些操作并填充相应的值对.

想象一下:

for k in myDict.keys():
    myDict[k] = MyClass.TheAssociatedFunction()
Run Code Online (Sandbox Code Playgroud)

eum*_*iro 11

myDict["Objective A"] = MyClass.FuncA()
Run Code Online (Sandbox Code Playgroud)

关联的返回值MyClass.FuncA.如果要关联函数本身:

myDict["Objective A"] = MyClass.FuncA
myDict["Objective B"] = MyClass.FuncB
Run Code Online (Sandbox Code Playgroud)

然后你可以直接调用它:

myDict["Objective A"]()
Run Code Online (Sandbox Code Playgroud)

  • 请注意,以这种方式调用方法将无法工作,除非它们使用`classmethod`或`staticmethod`进行修饰 - 否则您需要传递一个实例.(虽然+1给了一个很好的答案) (2认同)