Ungkapan lambda menangkap pembolehubah luaran dengan membuat rujukan kepada pembolehubah dalam skop luaran Langkah-langkah khusus termasuk: Apabila ungkapan lambda menggunakan pembolehubah luaran, ia menangkap pembolehubah. Ungkapan Lambda hanya boleh menangkap pembolehubah tempatan dalam fungsi luaran, bukan pembolehubah global. Jika pembolehubah luaran ditetapkan semula, rujukan yang ditangkap dalam ungkapan lambda juga dikemas kini.
Cara ungkapan lambda menangkap pembolehubah luaran
ungkapan lambda ialah fungsi tanpa nama yang boleh mengakses pembolehubah dalam skop yang disertakan. Apabila ungkapan lambda menangkap pembolehubah luaran, ia mencipta rujukan kepada pembolehubah itu.
Syntax
lambda 参数列表: 表达式
Tangkap pembolehubah luaran
Jika ungkapan lambda menggunakan pembolehubah yang diisytiharkan dalam skop luaran, ia akan ditangkap.
# 定义外部函数 def outer_function(): outer_variable = 10 # 定义 lambda 表达式,捕获 outer_variable my_lambda = lambda: outer_variable # 调用 lambda 表达式,获取外部变量 result = my_lambda() print(result) # 输出: 10
Nota
Ekspresi lambda hanya boleh menangkap pembolehubah tempatan dalam fungsi luaran, bukan pembolehubah global. Selain itu, jika pembolehubah luaran ditetapkan semula, rujukan yang ditangkap dalam ungkapan lambda juga dikemas kini.
Contoh praktikal
# 使用 lambda 表达式对列表中的数字进行排序 numbers = [4, 2, 8, 1, 6] # 根据数字的平方对列表进行排序 sorted_numbers = sorted(numbers, key=lambda x: x**2) # 打印排序后的列表 print(sorted_numbers) # 输出: [1, 4, 2, 6, 8]
Dalam contoh ini, ungkapan lambda menangkap kuasa duax
变量,并计算x
dalam skop luar sebagai asas pengisihan.
Atas ialah kandungan terperinci Bagaimanakah ungkapan lambda menangkap pembolehubah luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!