以编程方式设置lambda函数的名称

时间:2018-05-22 08:16:25

标签: python lambda namespaces

我有一个lambda功能

myfun=lambda x:2*x

如果我打印其名称

print(myfun)
<function <lambda> at 0x000000000E512898>

这不是很有用。

如果我明确设置其名称,则效果更好

myfun.__name__='myfun'
print(myfun)
<function myfun at 0x000000000E512898>

鉴于我有一大堆lambdas,如何以编程方式执行此分配?

做法的动机如下:

我正在导入另一个功能

from mymodule import f_many_args

mymodule中,它被定义为

def f_many_args(a,b,c):

但是,在另一个脚本中,我需要通过使用一些全局变量设置b和c来调用此f_many_args。 后来我需要打印f_many_args的名称,我需要它比

更具信息性

1 个答案:

答案 0 :(得分:3)

取代:

myfun = lambda x:2*x

使用:

def myfun(x):
    """doubles the input parameter"""
    return 2 * x