Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Lambda Binding ใน Python คืออะไร?

เมื่อโปรแกรมหรือคำสั่งฟังก์ชันถูกดำเนินการ ค่าปัจจุบันของพารามิเตอร์ทางการ (formal parameters) จะถูกบันทึก (บนสแต็ก) และภายในขอบเขตของคำสั่ง จะถูกผูกมัดกับค่าของอาร์กิวเมนต์จริง (actual arguments) ที่ส่งมาในการเรียก เมื่อคำสั่งสิ้นสุด ค่าเดิมของพารามิเตอร์ทางการเหล่านั้นจะถูกกู้คืน โปรโตคอลนี้เป็นแบบเรียกซ้ำ (recursive) ทั้งหมด หากภายในเนื้อหาของคำสั่ง มีการทำให้พารามิเตอร์ทางการถูกผูกมัดอีกครั้งกับค่าใหม่ โครงร่าง lambda-binding จะรับประกันว่าทุกอย่างจะเกิดขึ้นอย่างเป็นระบบ

มีการผูกมัด (binding) สำหรับ x เพียงครั้งเดียว: การทำ x = 5 เพียงแค่เปลี่ยนค่าในการผูกมัดที่มีอยู่แล้ว นั่นคือเหตุผลที่พารามิเตอร์เริ่มต้น (default parameter) ถูกใช้เพื่อกำหนดค่าโดยตรงให้กับพารามิเตอร์ของ lambda

ตัวอย่าง

def function(x):
    a = lambda x=x: x
    x = 5
    b = lambda: x
    return a, b

aa, bb = function(2)
print(aa())
print(bb())

ผลลัพธ์

2
5

Python อนุญาตให้สร้าง Anonymous Function (ฟังก์ชันไม่มีชื่อ) โดยใช้สิ่งที่เรียกว่า Lambda Function Lambda function เป็นฟังก์ชันขนาดเล็ก ปกติไม่เกินหนึ่งบรรทัด ผลลัพธ์ของนิพจน์คือค่าที่ได้เมื่อ lambda ถูกนำไปใช้กับอาร์กิวเมนต์