Python 相当于 JavaScript 函数对象

Vic*_*rez 1 javascript python

我想知道是否有Python与此JavaScript结构等效的结构:

var myFunctions = {
    'greet': function(name){
        return "Hello, " + name;
    },

    'farewell': function(time){
        return "See you " + time;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我可以这样调用函数:

let greetMarta = myFunctions['greet']("Marta");
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 5

您可以用来lambda定义非常简单的函数,例如这些内联函数;然而它们只能包含一个表达式:

    my_functions = {
        'greet': lambda name: "Hello {}".format(name),
        'farewell': lambda time: "See you {}".format(time)
    }
Run Code Online (Sandbox Code Playgroud)

对于任何更复杂的事情,您需要定义一个独立的函数,然后在字典中引用它:

    def my_complex_function(param):
        ... logic ...
        return whatever

    my_functions = {
        'complex_func': my_complex_function,
        ...
    }
Run Code Online (Sandbox Code Playgroud)

为了调用该函数,您可以执行以下操作:

my_functions['my_complex_function'](param)
Run Code Online (Sandbox Code Playgroud)