首頁  >  文章  >  後端開發  >  lambda 表達式如何捕捉外部變數?

lambda 表達式如何捕捉外部變數?

WBOY
WBOY原創
2024-04-25 17:24:01538瀏覽

lambda 表達式透過建立一個外部作用域中變數的參考來捕捉外部變量,具體步驟包括: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn