5 เมษายน 2558

Published เมษายน 05, 2558 by with 0 comment

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

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

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

[python]
def <lambda>(arguments):
return expression
[/python]

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

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

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

[python]lambda arguments: expression[/python]

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

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

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

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

[python]
>>> x = lambda: 5*2
>>> y = x()
>>> print(y)
10
[/python]

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

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)