Lớp trang trí Python

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í

Giới thiệu về trình trang trí lớp Python

Cho đế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 star sau in ra một số ký tự * trước và sau khi gọi hàm trang trí

def star(n): def decorate(fn): def wrapper(*args, **kwargs): print(n*'*') result = fn(*args, **kwargs) print(result) print(n*'*') return result return wrapper return decorate

Code language: Python (python)

star là một nhà máy trang trí trả lại một người trang trí. Nó chấp nhận một đối số xác định số ký tự * để hiển thị

Sau đây minh họa cách sử dụng nhà máy trang trí star

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)

đầu ra

***** 30 *****

Nhà máy trang trí

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)
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ố (

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)
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

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)
5. Do đó, bạn có thể tạo phương thức

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)
6 làm trang trí

Ví dụ sau viết lại nhà máy trang trí star bằng cách sử dụng một lớp thay thế

________số 8_______

Và bạn có thể sử dụng lớp

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)
8 làm trang trí như thế này

@Star(5) def add(a, b): return a + b

Code language: Python (python)

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)
9 trả về một thể hiện của lớp

@star(5) def add(a, b): return a + b add(10, 20)

Code language: Python (python)
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.