Bắt đầu ngayBắt đầu miễn phí

Định nghĩa một decorator

Người bạn đồng nghiệp của bạn đang viết một decorator in ra thông điệp "before" trước khi hàm được trang trí được gọi và in ra thông điệp "after" sau khi hàm đó chạy xong. Họ đang bối rối về cách hàm được trang trí được bọc (wrap) như thế nào. Hãy giúp họ hoàn thiện decorator print_before_and_after().

Bài tập này là một phần của khóa học

Viết hàm trong Python

Xem khóa học

Hướng dẫn bài tập

  • Gọi hàm được trang trí và truyền cho nó các đối số vị trí *args.
  • Trả về hàm mới sau khi trang trí.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

def print_before_and_after(func):
  def wrapper(*args):
    print('Before {}'.format(func.__name__))
    # Call the function being decorated with *args
    ____(*args)
    print('After {}'.format(func.__name__))
  # Return the nested function
  return ____

@print_before_and_after
def multiply(a, b):
  print(a * b)

multiply(5, 10)
Chỉnh sửa và Chạy Mã