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

ฟังก์ชันไม่ระบุชื่อ (Anonymous Functions) ใน Python

ฟังก์ชันเหล่านี้เรียกว่า 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