Skip to content

สร้างฟังก์ชันไม่ระบุชื่อด้วย lambda ใน Python

ตามหลักไวยากรณ์ในภาษา Python เราสามารถสร้างฟังก์ชันไม่ระบุชื่อ (anonymous functions) ได้ด้วยฟังก์ชัน lambda หรือชื่อในภาษาไทยคือ "แลมบ์ดา" ครับ

นิพจน์แลมบ์ดา (Lambda expressions) จะใช้ในการสร้างฟังก์ชันที่ไม่ระบุชื่อ (anonymous functions) อาร์กิวเมนต์นิพจน์แลมบ์ดา: นิพจน์ที่ทำให้ฟังก์ชันของวัตถุที่มาทำงาน มีชื่อไม่เหมือนฟังก์ชันของวัตถุที่กำหนดด้วย มีการใช้งานในแบบฟังก์ชันดังนี้ครับ

def <lambda>(arguments):
    return expression

เราสามารถกำหนด arguments ให้มีกี่ตัวก็ได้ครับ แต่ผลลัพธ์ที่ถูกส่งออกมาจาก return จะส่งออกมาได้แค่ค่าเดียวเท่านั้นครับ
ตัวอย่างเช่น

def form(n):
    return lambda x: x + n #ดำเนิการตามนิพจน์แลมบ์ดา
f = form(3) #กำหนด arguments ของค่า n = 3
f(2) #จะส่งผลลัพธ์กลับมาคือ 5

และเราสามารถย่อนิพจน์แลมบ์ดา (Lambda expressions) ให้กลายเป็นฟังก์ชันขนาดเล็กลงเป็นอาร์กิวเมนต์ได้ดังนี้

lambda arguments: expression

ตัวอย่างเช่น

>>> a = lambda x,n: x * n
>>> a(9,8)
72
>>> a(-1,2)
-2

นอกจากนั้น หากเราไม่ต้องการให้มี arguments เราไม่ต้องใส่ arguments ลงไปได้เหมือนกันครับ

ตัวอย่างเช่น

>>> x = lambda: 5*2
>>> y = x()
>>> print(y)
10

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *