ard*_*igh 4 python lambda openerp
下面是一个Python字典(来自OpenERP应用程序),字段通过lambda默认.我可以看到如何使用这种模式,显然'active'是一个布尔值,'level'是一个整数,'price'是一个浮点数.
但有人可以解释这是如何工作的吗?什么是'a'代表在这里?
_defaults = {
'active': lambda *a: False,
'level': lambda *a: 1,
'price': lambda *a: 1.0,
}
Run Code Online (Sandbox Code Playgroud)
的*a语法捕获任意数量的参数; lambda接受0个或多个参数,并且都返回一个常量值,无论如何.
从本质上讲,这些lambda会忽略传入的所有参数.
语法也可以在函数中使用,并且还有一个等价的关键字参数**keywords,从而产生映射.
快速演示:
>>> demo = lambda *a: a
>>> demo()
()
>>> demo(1, 2, 3)
(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
demo这里返回*a捕获的内容; 一个0或更多值的元组,它们是调用的参数.
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |