![](/img/trans.png)
[英]JavaScript: Is there an equivalent to the Python setattr() function?
[英]Python equivalent to JavaScript function object
我想知道是否有與此JavaScript
構造等效的Python
:
var myFunctions = {
'greet': function(name){
return "Hello, " + name;
},
'farewell': function(time){
return "See you " + time;
}
}
所以我可以這樣調用函數:
let greetMarta = myFunctions['greet']("Marta");
您可以使用lambda
來定義非常簡單的函數,例如這些內聯函數; 但是它們只能由一個表達式組成:
my_functions = {
'greet': lambda name: "Hello {}".format(name),
'farewell': lambda time: "See you {}".format(time)
}
對於更復雜的事情,您需要定義一個獨立的函數,然后在字典中引用它:
def my_complex_function(param):
... logic ...
return whatever
my_functions = {
'complex_func': my_complex_function,
...
}
為了調用該函數,您可以執行以下操作:
my_functions['my_complex_function'](param)
def greet(name):
return "Hello, " + name
def farewell(time):
return "See you " + time
my_functions =
{
"greet": greet,
"farewell": farewell
}
def greet(name):
return "Hello, " + name;
def farewell(time):
return "See you " + time;
my_dict = {'greet' : greet,
'farewell' : farewell}
greetMarta = my_dict['greet']("Marta");
使用字典獲取函數並執行
好的,函數是Python中可以傳遞的對象,而myFunctions
在這里稱為字典(而不是Javascript中的對象):
myfunctions = {
'greet': lambda x: print("Hi" ,x,"!"),
'bye' : lambda x: print("Bye",x,"!")
}
如果您想為函數編寫更長的內容,請在字典之外定義它,然后僅使用名稱作為值。 編輯:有關示例,請參見@Venkat的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.