มัณฑนากร
เรียนรู้วิธีใช้มัณฑนากรเพื่อปรับเปลี่ยนหรือต่อยอดฟังก์ชัน
มัณฑนากร เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 5 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 5 บทเรียน
บทนำเกี่ยวกับ decorator
บทนำเกี่ยวกับ decorator
decorator เป็นความสามารถอันทรงพลังใน Python ที่ช่วยให้คุณปรับเปลี่ยนพฤติกรรมของฟังก์ชันหรือเมธอดได้ มักใช้เพื่อเพิ่มความสามารถให้ฟังก์ชันโดยไม่ต้องแก้ไขโค้ดของฟังก์ชันนั้น
ในบทเรียนนี้ คุณจะได้เรียนรู้ว่า decorator คืออะไร วิธีใช้ decorator และวิธีสร้าง decorator ของคุณเอง

decorator คืออะไร
decorator คืออะไร
decorator คือฟังก์ชันที่รับฟังก์ชันอีกหนึ่งฟังก์ชันเป็นข้อมูลนำเข้า และส่งคืนฟังก์ชันใหม่ที่มีความสามารถเพิ่มเติม มักใช้ร่วมกับไวยากรณ์ @decorator_name
# Basic example of a decorator
def decorator(func):
def wrapper():
print("Before the function call")
func()
print("After the function call")
return wrapper
@decorator
def say_hello():
print("Hello!")
say_hello()การทำงานของ decorator
การทำงานของ decorator
เมื่อคุณใช้ decorator, Python จะแทนที่ฟังก์ชันเดิมด้วยฟังก์ชัน wrapper ที่ decorator ส่งคืน
# How decorators work
def decorator(func):
def wrapper():
print("Wrapper called")
func()
return wrapper
@decorator
def greet():
print("Greetings!")
print(greet.__name__) # Outputs: wrapper
greet()การใช้ decorator กับอาร์กิวเมนต์
การใช้ decorator กับอาร์กิวเมนต์
decorator สามารถทำงานร่วมกับฟังก์ชันที่รับอาร์กิวเมนต์ได้โดยใช้ *args และ **kwargs ในฟังก์ชัน wrapper:
# Decorator for functions with arguments
def decorator(func):
def wrapper(*args, **kwargs):
print(f"Arguments: {args}, {kwargs}")
return func(*args, **kwargs)
return wrapper
@decorator
def add(a, b):
return a + b
print(add(3, 5))การเชื่อมต่อ decorator หลายตัว
การเชื่อมต่อ decorator หลายตัว
คุณสามารถใช้ decorator หลายตัวกับฟังก์ชันเดียวได้ โดย decorator จะถูกนำไปใช้ตามลำดับที่ปรากฏจากบนลงล่าง:
# Chaining multiple decorators
def decorator1(func):
def wrapper():
print("Decorator 1")
func()
return wrapper
def decorator2(func):
def wrapper():
print("Decorator 2")
func()
return wrapper
@decorator1
@decorator2
def greet():
print("Hello!")
greet()การสร้าง decorator ที่รับพารามิเตอร์
การสร้าง decorator ที่รับพารามิเตอร์
decorator ที่รับพารามิเตอร์จะรับอาร์กิวเมนต์และช่วยให้การทำงานมีความยืดหยุ่นมากขึ้น:
# Parameterized decorator
def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
func(*args, **kwargs)
return wrapper
return decorator
@repeat(3)
def say_hello():
print("Hello!")
say_hello()กรณีการใช้งานทั่วไปของ decorator
กรณีการใช้งานทั่วไปของ decorator
โดยทั่วไปมักใช้ decorator สำหรับ:
- บันทึกการเรียกใช้ฟังก์ชันและอาร์กิวเมนต์ของฟังก์ชัน
- วัดเวลาในการทำงานของฟังก์ชัน
- ควบคุมการเข้าถึง เช่น ตรวจสอบสิทธิ์ของผู้ใช้
- เก็บผลลัพธ์ไว้ในแคชเพื่อปรับปรุงประสิทธิภาพ
decorator ที่มีมาให้ใน Python
decorator ที่มีมาให้ใน Python
Python มี decorator ที่มีมาให้หลายตัว ได้แก่:
@staticmethod: กำหนดเมธอดแบบสแตติก@classmethod: กำหนดเมธอดของคลาส@property: กำหนดเมธอดสำหรับพร็อพเพอร์ตี
ข้อผิดพลาดที่พบบ่อยเกี่ยวกับ decorator
ข้อผิดพลาดที่พบบ่อยเกี่ยวกับ decorator
ต่อไปนี้คือข้อผิดพลาดบางอย่างที่ควรหลีกเลี่ยง:
- ไม่เก็บรักษาชื่อและสตริงเอกสารของฟังก์ชันเดิมไว้ (ใช้
functools.wraps) - ใช้ decorator โดยไม่จำเป็นกับงานง่าย ๆ
- ลืมจัดการอาร์กิวเมนต์ในฟังก์ชัน wrapper
เราได้เรียนรู้อะไรบ้าง
เราได้เรียนรู้อะไรบ้าง
ในบทเรียนนี้ คุณได้เรียนรู้:
- ความหมายของ decorator และวิธีการทำงานใน Python
- วิธีสร้างและใช้ decorator พื้นฐาน decorator ที่รับพารามิเตอร์ และ decorator ที่เชื่อมต่อกัน
- กรณีการใช้งานทั่วไปและ decorator ที่มีมาให้ใน Python
ทำได้ดีมาก! ไปยังหัวข้อถัดไปกันเลย

คำถามที่พบบ่อย
บทเรียน “มัณฑนากร” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “มัณฑนากร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 5 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “มัณฑนากร”
เรียนรู้วิธีใช้มัณฑนากรเพื่อปรับเปลี่ยนหรือต่อยอดฟังก์ชัน คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 5 บทเรียน
บทเรียน “มัณฑนากร” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- มัณฑนากร
- ตัวสร้าง
- ตัวจัดการบริบท (คำสั่ง with)
- การสร้างแบบกระชับ (ลิสต์ เซต และดิกชันนารี)
- ตัววนซ้ำและสิ่งที่วนซ้ำได้