【发布时间】:2014-04-01 23:48:28
【问题描述】:
在 Python 中,是否可以以类似于以下 JavaScript 示例的方式定义一个函数(其中可以包含语句,因此不是 lambda)?
var func = function(param1, param2) {
return param1*param2;
};
我问,因为我想要一个函数字典,我不想先定义所有函数,然后将它们放入字典中。
我想要一个函数字典的原因是因为我将有另一个函数,它以另一个字典作为参数,循环遍历它的键,如果它在第一个字典中找到匹配的键,则调用具有值的关联函数第二个字典作为参数。像这样:
def process_dict(d):
for k, v in d.items():
if k in function_dict:
function_dict[k](v)
也许有更 Pythonic 的方式来完成这样的事情?
【问题讨论】:
-
你的函数有多复杂?您的 javascript 示例可以用 python 中的 lambda 表示:
lambda p1, p2: p1 * p2 -
所以您需要在表达式(字典文字/构造函数)中添加一个语句?这在 Python 中是不可能的。
-
@zch 不,我只是从一个空字典开始,然后像 javascript 示例中那样进行变量赋值,除了左侧是
function_dict["key"]。 -
@IvanNevostruev 我认为其中一些过于复杂(许多分支)且冗长而无法制作 lambda 语句,即使它可能会起作用。
标签: python function dictionary lambda