Python中有没有办法像JS中那样编写像lambda这样的对象

时间:2019-04-16 10:03:58

标签: javascript python

JS 中,我可以这样定义一个对象:

foo = {"foo": 42, "bar": function(){/* do something */}}

有没有办法在 Python 中做同样的事情?

2 个答案:

答案 0 :(得分:6)

以下可能有效:

# Define a function    
def foo():
    print("foo")

# Define a dictionary    
d = {"a":1, "b":foo}

d["b"]()

输出:foo

答案 1 :(得分:5)

Python具有lambda函数。 lambda函数是一个小的匿名函数。 lambda函数可以接受任意数量的参数,但只能有一个表达式。

语法:

  

lambda 参数:表达式

您可以尝试以下方法吗?

foo = {"foo": 42, "bar": lambda a : a + 10}

您可以通过以下方式使用它:

foo['bar'](5)

您将获得以下输出:

15

整个示例:

>>> foo = {"foo": 42, "bar": lambda a : a + 10}
>>> foo['bar'](5)
15

您也可以通过Loss of human identity引用其他解决方案的相同方法来调用标准函数。

示例

def my_func(a):
    return a + 10
foo = {"foo": 42, "bar": my_func}
foo['bar'](5)
# output
# 15