Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erfasst ein Lambda-Ausdruck externe Variablen?

Wie erfasst ein Lambda-Ausdruck externe Variablen?

WBOY
WBOYOriginal
2024-04-25 17:24:01466Durchsuche

Ein Lambda-Ausdruck erfasst eine externe Variable, indem er einen Verweis auf die Variable im externen Bereich erstellt. Zu den spezifischen Schritten gehören: Wenn ein Lambda-Ausdruck eine externe Variable verwendet, erfasst er die Variable. Lambda-Ausdrücke können nur lokale Variablen in externen Funktionen erfassen, keine globalen Variablen. Wenn die externe Variable neu zugewiesen wird, wird auch die im Lambda-Ausdruck erfasste Referenz aktualisiert.

lambda 表达式如何捕获外部变量?

Wie Lambda-Ausdrücke externe Variablen erfassen

Lambda-Ausdrücke sind anonyme Funktionen, die auf Variablen im umschließenden Bereich zugreifen können. Wenn ein Lambda-Ausdruck eine externe Variable erfasst, erstellt er einen Verweis auf diese Variable.

Syntax

lambda 参数列表: 表达式

Externe Variablen erfassen

Wenn ein Lambda-Ausdruck eine in einem externen Bereich deklarierte Variable verwendet, wird diese erfasst.

# 定义外部函数
def outer_function():
    outer_variable = 10

    # 定义 lambda 表达式,捕获 outer_variable
    my_lambda = lambda: outer_variable

# 调用 lambda 表达式,获取外部变量
result = my_lambda()
print(result)  # 输出: 10

Hinweise

Lambda-Ausdrücke können nur lokale Variablen in externen Funktionen erfassen, keine globalen Variablen. Wenn die externe Variable außerdem neu zugewiesen wird, wird auch die im Lambda-Ausdruck erfasste Referenz aktualisiert.

Praktisches Beispiel

# 使用 lambda 表达式对列表中的数字进行排序
numbers = [4, 2, 8, 1, 6]

# 根据数字的平方对列表进行排序
sorted_numbers = sorted(numbers, key=lambda x: x**2)

# 打印排序后的列表
print(sorted_numbers)  # 输出: [1, 4, 2, 6, 8]

In diesem Beispiel erfasst der Lambda-Ausdruck das Quadrat von x 变量,并计算 x im äußeren Bereich als Sortierbasis.

Das obige ist der detaillierte Inhalt vonWie erfasst ein Lambda-Ausdruck externe Variablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn