在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是局部变量