Python中lambda表达式详解

时间:2022-04-13 19:04:15

原文转自:http://www.cnblogs.com/zhangjing0502/archive/2012/07/13/2589834.html,感谢作者。

Python中使用lambda函数

在Python中,lambda允许用户快速定义单行函数,当然用户也可以按照典型的函数定义完成函数。lambda的目的就是简化用户定义使用函数的过程。

>>> func =lambda x: x *2   # 定义lambda函数,通过赋值给func进行调用 
 
>>> func(3) 
 
6 
 
>>>(lambda x: x *2)(3)   # lambda函数的定义和调用可以整合在一起(可读性差) 
 
6

使用lambda函数应该注意的几点:

  • lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数
  • lambda参数列表可以包含多个参数,如 lambda x, y: x + y
  • lambda中的表达式不能含有命令,而且只限一条表达式

另外补充一个细节,刚遇到的问题:

我们知道在函数中使用全局变量就是在函数中添加“global var”语句即可,事实上还有个细节就是Python默认函数中的变量为全局变量,一旦在函数体的某个位置该变量被赋值,那么它就被认定为局部变量了。

In Python, variables that are only referenced inside a function are implicitly global. If a variable is assigned a new value anywhere within the function’s body, it’s assumed to be a local.

#!/usr/bin/python 
 
var=23 
 
def func_local(): 
 
   
printvar   # var是全局变量。另外这里只是使用var的值而没有改变它,如果想改变该全局变量,应添加"global var" 
 
def func_global(): 
 
   
var=100   # var是局部变量