lambda 表達式透過建立一個外部作用域中變數的參考來捕捉外部變量,具體步驟包括:lambda 表達式使用外部變數時會捕獲該變數。 lambda 表達式只能捕捉外部函數中的局部變量,不能捕捉全域變數。如果外部變數被重新賦值,lambda 表達式中捕獲的參考也會更新。
lambda 表達式如何捕捉外部變數
lambda 表達式是匿名函數,可以存取封閉作用域(enclosing scope)中的變數。當 lambda 表達式捕獲外部變數時,它會建立一個對該變數的引用。
語法
lambda 参数列表: 表达式
捕捉外部變數
如果lambda 表達式使用了外部作用域中聲明的變量,則會捕獲該變數。
# 定义外部函数 def outer_function(): outer_variable = 10 # 定义 lambda 表达式,捕获 outer_variable my_lambda = lambda: outer_variable # 调用 lambda 表达式,获取外部变量 result = my_lambda() print(result) # 输出: 10
注意事項
lambda 表達式只能捕獲外部函數中的局部變量,而不能捕獲全域變數。此外,如果外部變數被重新賦值,則 lambda 表達式中捕獲的參考也會更新。
實戰案例
# 使用 lambda 表达式对列表中的数字进行排序 numbers = [4, 2, 8, 1, 6] # 根据数字的平方对列表进行排序 sorted_numbers = sorted(numbers, key=lambda x: x**2) # 打印排序后的列表 print(sorted_numbers) # 输出: [1, 4, 2, 6, 8]
在這個例子中,lambda 表達式捕獲了外部作用域中的x
變量,併計算x
的平方作為排序依據。
以上是lambda 表達式如何捕捉外部變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!