Bản tóm tắt. trong hướng dẫn này, bạn sẽ tìm hiểu về trình trang trí lớp Python. Sau phần hướng dẫn, bạn sẽ biết cách định nghĩa các lớp là bộ trang trí Show Giới thiệu về trình trang trí lớp PythonCho đến giờ bạn đã học cách sử dụng các hàm để xác định các bộ trang trí Ví dụ: hàm
Sau đây minh họa cách sử dụng nhà máy trang trí
đầu ra
Nhà máy trang trí 2 lấy một đối số và trả về một đối số có thể gọi được. Cuộc gọi có thể lấy một đối số ( 3) là một chức năng sẽ được trang trí. Ngoài ra, có thể gọi được có thể truy cập đối số (_______1_______4) được chuyển đến nhà máy trang trí Một thể hiện của lớp có thể gọi được khi nó triển khai phương thức 5. Do đó, bạn có thể tạo phương thức 6 làm trang trí Ví dụ sau viết lại nhà máy trang trí Và bạn có thể sử dụng lớp 8 làm trang trí như thế này
9 trả về một thể hiện của lớp 8. Ví dụ đó có thể gọi được, vì vậy bạn có thể làm điều gì đó như Bạn có thể trang trí một lớp học bằng Python không?Để trang trí một phương thức trong một lớp, trước tiên hãy sử dụng ký hiệu '@' theo sau là tên của hàm trang trí . Trình trang trí đơn giản là một hàm lấy một hàm làm đối số và trả về một hàm khác.
Trình trang trí trong Python là gì?Trình trang trí là mẫu thiết kế trong Python cho phép người dùng thêm chức năng mới vào đối tượng hiện có mà không sửa đổi cấu trúc của đối tượng . Trình trang trí thường được gọi trước khi định nghĩa chức năng bạn muốn trang trí.
Là một trang trí một lớp học?Công cụ trang trí lớp là công cụ trang trí đối tượng lớp python. Nó hoạt động giống như trong trường hợp hàm, ngoại trừ đối tượng được trang trí là một lớp . Bạn có thể đoán rằng trình trang trí mà bạn đang triển khai sẽ trả về một tham chiếu đến lớp có thứ tự cao hơn, sau đó.
Khi nào tôi nên sử dụng trình trang trí trong Python?Khi nào nên sử dụng Trình trang trí trong Python. Bạn sẽ sử dụng một trình trang trí khi bạn cần thay đổi hành vi của một hàm mà không sửa đổi chính hàm đó . Một vài ví dụ điển hình là khi bạn muốn thêm ghi nhật ký, kiểm tra hiệu suất, thực hiện lưu vào bộ nhớ đệm, xác minh quyền, v.v. |