下面是一个 Python 字典(来自 OpenERP 应用程序),其中的字段通过 lambda 进行默认。我可以看到如何使用此模式,显然“active”是一个 bool 值,“level”是一个整数,“price”是一个 float 。
但是有人可以准确解释这是如何工作的吗?这里的“a”代表什么?
_defaults = {
'active': lambda *a: False,
'level': lambda *a: 1,
'price': lambda *a: 1.0,
}
最佳答案
*a
语法捕获任意数量的参数; lambda 接受 0 个或多个参数,并且无论如何都返回一个常量值。
本质上,这些 lambda 忽略传入的所有参数。
语法也可以用在函数中,还有一个关键字参数等价于**keywords
的形式,产生一个映射。
快速演示:
>>> demo = lambda *a: a
>>> demo()
()
>>> demo(1, 2, 3)
(1, 2, 3)
demo
这里返回捕获的任何*a
;一个包含 0 个或多个值的元组,这些值是调用的参数。
关于python - 解释这个 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19743727/