在 JS 中,我可以这样定义一个对象:
foo = {"foo": 42, "bar": function(){/* do something */}}
有没有办法在 Python 中做同样的事情?
答案 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