Giới thiệu về decorator
Thuộc phần Lập trình hướng đối tượng trong hành trình Python của Coddy. Bài học 9 trên 64.
Decorator là cách sửa đổi hoặc nâng cao hàm và lớp mà không thay đổi code ban đầu của chúng. Chúng dùng ký hiệu @.
Đây là ví dụ về một hàm trang trí đơn giản:
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperÁp dụng decorator bằng @:
@my_decorator
def say_hello():
print("Hello!")Gọi hàm đã được trang trí:
say_hello()Đầu ra:
Before function runs
Hello!
After function runs@my_decorator tương đương với cách viết:
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)Nhưng cú pháp @ gọn gàng và dễ đọc hơn nhiều.
Điểm chính: Bộ trang trí (decorator) bao quanh các hàm (function) để thêm chức năng mà không sửa đổi code của hàm ban đầu
Tự làm thử
Bài học này không có thử thách code.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình hướng đối tượng
1Nền tảng về lập trình hướng đối tượng
Tệp bên ngoàiGiới thiệu về lập trình hướng đối tượngLớp và đối tượngTham số selfPhương thứcThuộc tínhPhương thức khởi tạo (__init__)Ôn tập: máy tính đơn giản4Kế thừa
Kế thừa cơ bảnHàm super()Ghi đè phương thứcKế thừa đa lớpThứ tự phân giải phương thứcÔn tập: hệ thống phân cấp nhân viên2Decorator
Giới thiệu về decoratorDecorator thuộc tínhDecorator phương thức tĩnhDecorator phương thức lớp5Tính đa hình
Xem lại cách ghi đè phương thứcKiểu gõ vịtLớp và phương thức trừu tượngThiết kế giao diệnÔn tập: máy tính hình học8Các khái niệm OOP nâng cao
Kết hợp và kế thừaMixinPhương thức tĩnh và phương thức lớpDecorator lớpTrình quản lý ngữ cảnhTự luyện tập: Trình biên dịch Python online