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