ฟังก์ชันเหล่านี้เรียกว่า anonymous เพราะไม่ได้ประกาศในวิธีมาตรฐานโดยใช้คีย์เวิร์ด def คุณสามารถใช้คีย์เวิร์ด lambda เพื่อสร้างฟังก์ชัน anonymous ขนาดเล็ก
- Lambda forms สามารถรับอาร์กิวเมนต์ได้จำนวนเท่าไรก็ได้ แต่คืนค่าเพียงค่าเดียวในรูปของนิพจน์ (expression) พวกมันไม่สามารถมีคำสั่งหรือนิพจน์หลายๆ ตัวได้
- Anonymous function ไม่สามารถเป็นการเรียก print โดยตรงได้ เพราะ lambda ต้องการนิพจน์
- Lambda functions มี local namespace ของตัวเองและไม่สามารถเข้าถึงตัวแปรอื่นนอกเหนือจากใน parameter list และใน global namespace
- แม้จะดูเหมือน lambda เป็นเวอร์ชันหนึ่งบรรทัดของฟังก์ชัน แต่ไม่เทียบเท่ากับ inline statements ใน C หรือ C++ ซึ่งวัตถุประสงค์คือการข้ามการจัดสรร function stack ในระหว่าง invocation เพื่อ performance
ไวยากรณ์ (Syntax)
ไวยากรณ์ของฟังก์ชัน lambda มีเพียงคำสั่งเดียว ดังนี้:
lambda [arg1 [,arg2,.....argn]]:expression
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงว่า lambda form ของฟังก์ชันทำงานอย่างไร:
#!/usr/bin/python
# Function definition is here
sum = lambda arg1, arg2: arg1 + arg2;
# Now you can call sum as a function
print "Value of total : ", sum(10, 20)
print "Value of total : ", sum(20, 20)
ผลลัพธ์ (Output)
เมื่อรันโค้ดข้างต้น จะได้ผลลัพธ์ดังนี้:
Value of total : 30
Value of total : 40