簡體   English   中英

Python 等價於 JavaScript 函數對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM