Lambda Function in Python

บางครั้งมีงานที่ต้องทำคล้ายกันอยู่แล้วในส่งต้นข้อง function f1 f2 f3 … แต่เนื่องจากงานส่วนท้าย ที่แตกต่างกัน .. ทำให้ต้องใช้วิธี copy code ส่วนต้นของ f1 f2 f3 ออกเป็นสามชุด (ทั้งที่เหมือนกัน) .. หากต้องแก้ไขล่ะ ?? .. มีวิธีที่ดีกว่านี้ไหม ??

ขอบคุณตัวอย่างจาก http://debianclub.org/book/export/html/166

ตัวอย่าง decleare function ปรกติ

>>> def f(x):
...   return x*2
...
>>> f(3)
6

ทดสอบใช้ lambda แบบแรก

>>> g = lambda x: x*2
>>> g(3)
6

การใช้ lambda จะ return ค่าเป็น ‘ตัว Function’ .. จึงลองใส่ argument > 3

>>> (lambda x: x*2)(3)
6

อีกตัวอย่างนึง ใช้ผสมกับฟังก์ชัน

>>> def make_incrementor(n):
...     return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42

>>> f(1)
43

http://www.diveintopython.org/power_of_introspection/lambda_functions.html

http://en.wikibooks.org/wiki/Python_Programming/Functions

http://www.secnetix.de/olli/Python/lambda_functions.hawk

Del.icio.us : , ,
Technorati : , ,

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s