Trình trang trí thuộc tính python trả về đối tượng thuộc tính
Nó thường được coi là phương pháp hay nhất để tạo getters và setters cho các thuộc tính công khai của một lớp. Nhiều ngôn ngữ cho phép bạn triển khai điều này theo nhiều cách khác nhau, bằng cách sử dụng hàm (như 8) hoặc bằng cách sử dụng cấu trúc 9 hoặc 0 dành riêng cho ngôn ngữ. Trong Python, nó được thực hiện bằng cách sử dụng 0 Show Trong bài viết này, tôi sẽ mô tả trình trang trí thuộc tính Python mà bạn có thể đã thấy được sử dụng với cú pháp 1
Đây là cách tạo getters, setters và deleters (hoặc phương thức biến đổi) của Python cho một thuộc tính trong một lớp Trong trường hợp này, trình trang trí 0 làm cho nó nên bạn gọi phương thức 3 giống như nó chỉ là một thuộc tính bình thường, trong khi thực tế, nó thực sự là một phương thức chứa mã được chạy khi thuộc tính được đặtViệc sử dụng một getter/setter/deleter như thế này mang lại cho chúng ta khá nhiều lợi thế, một vài trong số đó tôi đã liệt kê ở đây
Python đạt được chức năng này với các bộ trang trí, là các phương thức đặc biệt được sử dụng để thay đổi hành vi của một hàm hoặc lớp khác. Để mô tả cách hoạt động của trình trang trí 0, chúng ta hãy xem một trình trang trí đơn giản hơn và cách hoạt động bên trong của nóTrình trang trí đơn giản là một hàm lấy một hàm khác làm đối số và thêm vào hành vi của nó bằng cách bao bọc nó. Đây là một ví dụ đơn giản Chạy mã này cung cấp cho bạn
Như bạn có thể thấy, hàm 5 tự động tạo một hàm mới để trả về bằng cách sử dụng hàm đầu vào, thêm mã sẽ được thực thi trước và sau khi hàm ban đầu chạyTrình trang trí 6 được triển khai với mẫu tương tự như hàm 7. Sử dụng cú pháp Python 1, nó nhận hàm được trang trí làm đối số, giống như trong ví dụ của tôi. 9Vì vậy, quay trở lại ví dụ đầu tiên của tôi, mã này 2Gần tương đương với cái này 3Lưu ý rằng tôi đã thay đổi một số tên chức năng cho rõ ràng Sau đó, sau này khi bạn muốn sử dụng 20 như chúng tôi làm trong ví dụ, bạn thực sự đang gọi là 5Bây giờ đối tượng 21 mới này (một thể hiện của đối tượng 6) có cả phương thức getter và setterĐể sử dụng những thứ này với lớp của chúng ta, 23, đối tượng 6 hoạt động như một bộ mô tả, có nghĩa là nó có các phương thức __get__(), __set__() và __delete__() của riêng nó. Các phương thức 25 và 26 được kích hoạt trên một đối tượng khi một thuộc tính được truy xuất hoặc đặt và 27 được kích hoạt khi một thuộc tính bị xóa bằng 28Vì vậy, 29 kích hoạt phương thức 26, được kế thừa từ 31. Điều này đưa chúng ta đến một điểm quan trọng - lớp của bạn phải kế thừa từ 31 để điều này hoạt động. Vì vậy, một lớp như thế này sẽ không thể sử dụng các thuộc tính setter vì nó không kế thừa từ 31 9Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó Nhờ có 6, các phương thức này hiện tương ứng với các phương thức 35 và 36 của chúng tôi ở trên 37 và 38 hiện được bao bọc bởi 39 và 50, tương ứngVà cuối cùng, những đối tượng mô tả này có thể được truy cập bằng cách chuyển một tham chiếu đến lớp của chúng ta, 23
Kiểu trả về của trình trang trí Python là gì?Các công cụ trang trí trong Python rất mạnh có thể sửa đổi hành vi của một hàm mà không sửa đổi nó vĩnh viễn. Về cơ bản, nó bao hàm một hàm khác và vì cả hai hàm đều có thể gọi được, nên nó trả về một hàm có thể gọi được .
Ý nghĩa của @property trong Python là gì?Người trang trí @property
. Cú pháp của hàm này là. thuộc tính(fget=Không, fset=Không, fdel=Không, doc=Không)a built-in function that creates and returns a property object. The syntax of this function is: property(fget=None, fset=None, fdel=None, doc=None)
Điều gì là đúng về trang trí tài sản?@property decorator là một công cụ trang trí tích hợp sẵn trong Python, hữu ích trong việc xác định các thuộc tính một cách dễ dàng mà không cần gọi thủ công hàm sẵn có property(). Which is used to return the property attributes of a class from the stated getter, setter and deleter as parameters.
@property trong lớp Python là gì?Trình trang trí @property trong python là trình trang trí tích hợp sẵn dưới hàm property() . Phương thức property() được sử dụng để định nghĩa các thuộc tính của lớp python. Cú pháp cơ bản của phương thức property() là. property(fget, fset, fdel, doc) Trình trang trí @property trong python có thể được sử dụng để chỉ truy cập giá trị. |