Run_n_times()
ในวิดีโอก่อนหน้า ได้แสดงตัวอย่าง decorator ที่รับอาร์กิวเมนต์ นั่นคือ run_n_times() โค้ดของ decorator นี้แสดงซ้ำด้านล่างเพื่อให้เห็นภาพการทำงาน ลองฝึกใช้วิธีต่าง ๆ ในการ apply decorator กับฟังก์ชัน print_sum() แล้วจะได้เห็น trick สนุก ๆ ที่นำไปใช้กับเพื่อนร่วมงานได้
def run_n_times(n):
"""Define and return a decorator"""
def decorator(func):
def wrapper(*args, **kwargs):
for i in range(n):
func(*args, **kwargs)
return wrapper
return decorator
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนฟังก์ชันใน Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Make print_sum() run 10 times with the run_n_times() decorator
____
def print_sum(a, b):
print(a + b)
print_sum(15, 20)