1. Learn
  2. /
  3. Kurser
  4. /
  5. การเขียนฟังก์ชันใน Python

Connected

övning

วัด overhead ของ decorator

หัวหน้าของคุณเขียน decorator ชื่อ check_everything() ขึ้นมา และยืนกรานให้คุณใช้กับฟังก์ชันของตัวเอง แต่คุณสังเกตว่าเมื่อใช้ decorator นี้ ฟังก์ชันทำงานได้ช้ากว่าเดิมมาก คุณจึงต้องโน้มน้าวหัวหน้าว่า decorator นี้เพิ่มเวลาประมวลผลมากเกินไป วิธีที่จะทำได้คือวัดเวลาที่ฟังก์ชันเวอร์ชันที่ถูก decorate ใช้ในการทำงาน แล้วเปรียบเทียบกับเวลาที่ฟังก์ชันต้นฉบับจะใช้หากไม่มี decorator นี่คือ decorator ที่เป็นปัญหา:

def check_everything(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    check_inputs(*args, **kwargs)
    result = func(*args, **kwargs)
    check_outputs(result)
    return result
  return wrapper

Instruktioner

100 XP
  • เรียกใช้ฟังก์ชันต้นฉบับแทนเวอร์ชันที่ถูก decorate โดยใช้ attribute ที่คำสั่ง wraps() ใน decorator ของหัวหน้าได้เพิ่มเข้ามาในฟังก์ชัน