Menu
CoddyTech

Cú pháp Python

Bài học 6 trên 12 trong khóa học Trình trang trí trong Python của Coddy.

Trong bài học trước, chúng ta đã tìm hiểu cách tạo hàm trang trí, nhưng Python cung cấp một cách thanh lịch hơn nhiều để thực hiện chức năng này bằng ký hiệu @.

Ví dụ:

def my_decorator(func):
    def wrapper():
        print("Before function is called.")
        func()
        print("After function is called.")
    return wrapper

@my_decorator
def my_function():
	print("Inside my_function.")

Khi chạy my_function(), bạn sẽ thấy kết quả như sau:

Before function is called.
Inside my_function.
After function is called.

Điều này cho thấy hàm trang trí my_decorator có thể thay đổi cách hoạt động của my_function bằng cách thêm một đoạn code trước và sau khi hàm được gọi.

challenge icon

Thử thách

Dễ

Bạn được cung cấp code cho hàm add.

Nhiệm vụ của bạn là viết hàm trang trí có tên debug, như trong bài học trước, nhưng có thêm một số điểm sau:

  • Gắn hàm trang trí debug vào add bằng ký hiệu @.
  • Hàm debug cần hỗ trợ các đối số của hàm.

Để hỗ trợ hàm có đối số trong hàm trang trí,

def my_decorator(func):
    def wrapper(a, b):
        print("Before function is called.")
        func(a, b)
        print("After function is called.")
    return wrapper

Ví dụ:

Khi gọi hàm add(2, 3), kết quả cần in ra là,

Calling add with arguments (2, 3)
add returned: 5

Tự làm thử

# Viết code ở đây


def add(a, b):
    return a + b

Tất cả bài học trong Trình trang trí trong Python

Tự luyện tập: Trình biên dịch Python online