Cách dùng decorator
Bài học 5 trên 12 trong khóa học Trình trang trí trong Python của Coddy.
Trong Python, decorator là một hàm nhận một hàm khác làm đầu vào và mở rộng hành vi của hàm đầu vào mà không sửa đổi trực tiếp code của hàm đó. Decorator là một cách mạnh mẽ để sửa đổi hoặc nâng cao hành vi của các hàm một cách linh hoạt và có thể tái sử dụng.
Đây là một ví dụ về hàm decorator đơn giản:
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapperTrong ví dụ này, hàm my_decorator nhận một hàm khác là func làm đầu vào và trả về một hàm mới có tên là wrapper.
Hàm wrapper bổ sung một số hành vi trước và sau khi hàm func được gọi.
Thử thách
DễViết một hàm trang trí có tên debug, nhận một hàm func làm đầu vào và trả về một hàm mới in tên của func cùng giá trị trả về của func mỗi khi hàm đó được gọi.
Để lấy tên của
func, hãy dùngfunc.__name__.
Đây là ví dụ về cách dùng hàm trang trí debug:
def hello():
return "Hello"
debug_hello = debug(hello)
debug_hello()Trong ví dụ này, chúng ta dùng hàm trang trí debug để bọc hàm hello và tạo một hàm mới có tên debug_hello. Khi gọi debug_hello(), hàm trang trí sẽ in ra:
Calling hello
hello returned: HelloBạn có thể giả định rằng tất cả các hàm được truyền cho
debugđều không nhận đối số.
Tự làm thử
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