我在JavaEE过去两年一直在开发fullstack。我想粉碎我的Python知识 所以我想知道是否有一个Python等效于这个JavaScript构造,我希望将涉及使用Python词典:
var myFunctions = {
'greet': function(name){
return "Hello, " + name;
},
'farewell': function(time){
return "See you " + time;
}
}
所以我可以这样调用函数:
let greetMarta = myFunctions['greet']("Marta");
答案 0 :(得分:4)
您可以使用lambda
来定义非常简单的函数,例如内联函数;但是它们只能由一个表达式组成:
my_functions = {
'greet': lambda name: "Hello {}".format(name),
'farewell': lambda time: "See you {}".format(time)
}
对于任何更复杂的事情,你需要定义一个独立的函数,然后在dict中引用它:
def my_complex_function(param):
... logic ...
return whatever
my_functions = {
'complex_func': my_complex_function,
...
}
答案 1 :(得分:0)
def greet(name):
return "Hello, " + name
def farewell(time):
return "See you " + time
my_functions =
{
"greet": greet,
"farewell": farewell
}
答案 2 :(得分:0)
嗯,函数是Python中的一个对象,你可以传递,你的myFunctions
在这里被称为字典(而不是Javascript中的对象):
myfunctions = {
'greet': lambda x: print("Hi" ,x,"!"),
'bye' : lambda x: print("Bye",x,"!")
}
如果你想为函数写更长的东西,在字典之外定义它,只需使用值的名称。编辑:请参阅@ Venkat的答案。
答案 3 :(得分:0)
def greet(name):
return "Hello, " + name;
def farewell(time):
return "See you " + time;
my_dict = {'greet' : greet,
'farewell' : farewell}
greetMarta = my_dict['greet']("Marta");
使用字典来获取函数并执行