python lambda函数for 字符串_python – 将lambda函数的名称作为字符串

Lambdas是匿名的,这意味着他们没有名字.

如果你觉得他们应该有一个名字,你总是可以给__name__指定一个名字:

myfunc_l = lambda: None

myfunc_l.__name__ = 'foo'

请注意,Python无法知道您已将lambda函数对象分配给特定名称;赋值发生在执行lambda表达式之后.记住,你甚至不需要分配一个lambda:

result = (lambda x: x ** 2)(4)

或者您可以将lambda存储在列表中:

several_lambdas = [lambda y: (y // 2) for y in range(10, 20)]

并且在这两个上下文中都没有要分配给这些对象的名称.

另一方面,完整的函数定义是语句,而不是表达式,def语句要求您指定名称.在不命名结果函数的情况下,永远不能使用def语句,这就是Python可以为对象指定名称的原因:

>>> def foo(): pass

...

>>> print foo.__name__

'foo'

你仍然可以将foo分配给其他东西,删除foo全局引用,通过赋值__name__属性重命名函数对象,但它不会改变函数的性质.除了没有设置初始名称的上下文(以及它们只能表示单个表达式的事实)之外,lambdas是相同的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值