โค้ด เขียนยังไง ราชบัณฑิต

28 ครั้งเข้าชม
ปลดล็อกศักยภาพการเขียนโค้ดของคุณด้วยเทคนิคขั้นสูง! เรียนรู้การใช้ฟังก์ชัน lambda, decorators และ generators ใน Python เพื่อเขียนโค้ดที่กระชับและมีประสิทธิภาพยิ่งขึ้น พร้อมตัวอย่างการใช้งานจริงที่เข้าใจง่าย
ความคิดเห็น 0 ครั้งถูกใจ

ปลดล็อกพลังโค้ดไพธอนฉบับราชบัณฑิต: Lambda, Decorators และ Generators

การเขียนโค้ดอย่างมีประสิทธิภาพและกระชับเป็นศิลปะอย่างหนึ่ง โดยเฉพาะในภาษาไพธอนที่มีเครื่องมือทรงพลังมากมายรอให้เราค้นพบ บทความนี้จะพาคุณไปสำรวจเทคนิคขั้นสูงอย่าง ฟังก์ชันแลมบ์ดา (Lambda Functions), เดคอเรเตอร์ (Decorators) และ เจเนอเรเตอร์ (Generators) ผ่านมุมมองแบบ “ราชบัณฑิต” เน้นความเข้าใจง่ายและการนำไปใช้งานจริง เพื่อยกระดับทักษะการเขียนโค้ดไพธอนของคุณไปอีกขั้น

1. ฟังก์ชันแลมบ์ดา (Lambda Functions): สั้น กระชับ ได้ใจความ

ฟังก์ชันแลมบ์ดา หรือที่รู้จักกันในนาม "ฟังก์ชันนิรนาม" คือฟังก์ชันขนาดเล็กที่ไม่จำเป็นต้องมีการตั้งชื่อ เหมาะสำหรับการใช้งานแบบครั้งเดียวหรือกับฟังก์ชันอื่นๆ เช่น map, filter, และ sorted. โดยโครงสร้างพื้นฐานมีดังนี้:

lambda arguments: expression

ตัวอย่าง:

# ฟังก์ชันปกติ
def square(x):
  return x * x

# ฟังก์ชันแลมบ์ดา
square_lambda = lambda x: x * x

print(square(5))  # Output: 25
print(square_lambda(5))  # Output: 25

# ใช้กับ map
numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x * x, numbers))
print(squared_numbers)  # Output: [1, 4, 9, 16]

2. เดคอเรเตอร์ (Decorators): เพิ่มเติมฟังก์ชันได้อย่างยืดหยุ่น

เดคอเรเตอร์เปรียบเสมือน “เครื่องประดับ” ที่ช่วยเพิ่มความสามารถให้กับฟังก์ชันที่มีอยู่โดยไม่ต้องแก้ไขโค้ดภายในฟังก์ชันนั้น นิยมใช้ในการบันทึกเวลาทำงาน, ตรวจสอบข้อมูลขาเข้า หรือจัดการข้อยกเว้น.

ตัวอย่าง: การวัดเวลาทำงานของฟังก์ชัน

import time

def timer(func):
  def wrapper(*args, **kwargs):
    start_time = time.time()
    result = func(*args, **kwargs)
    end_time = time.time()
    print(f"Function {func.__name__} took {end_time - start_time:.4f} seconds")
    return result
  return wrapper

@timer
def slow_function():
  time.sleep(2)
  return "Finished!"

slow_function() # Output: Function slow_function took 2.0002 seconds และ "Finished!"

3. เจเนอเรเตอร์ (Generators): สร้างลำดับข้อมูลอย่างประหยัดทรัพยากร

เจเนอเรเตอร์เป็นฟังก์ชันพิเศษที่สร้างลำดับข้อมูลแบบ “ขี้เกียจ” (lazy evaluation) คือจะสร้างค่าเมื่อถูกเรียกใช้งานเท่านั้น ช่วยประหยัดหน่วยความจำเมื่อต้องจัดการกับข้อมูลขนาดใหญ่. โดยใช้คำสั่ง yield แทน return.

*ตัวอย่าง: สร้างลำดับเลขคู่**

def even_numbers(limit):
  for i in range(0, limit, 2):
    yield i

for number in even_numbers(10):
  print(number)  # Output: 0 2 4 6 8

การเข้าใจและประยุกต์ใช้ Lambda, Decorators และ Generators อย่างเหมาะสม จะช่วยให้คุณเขียนโค้ดไพธอนได้อย่างมีประสิทธิภาพ, กระชับ และอ่านง่ายขึ้น เสมือนการใช้ภาษาอย่าง “ราชบัณฑิต” ที่สื่อสารได้อย่างตรงประเด็นและทรงพลัง. ลองฝึกฝนและทดลองใช้งานดู แล้วคุณจะค้นพบศักยภาพที่ซ่อนอยู่ในโค้ดของคุณ!