Hướng dẫn what is a property in python? - Thuộc tính trong python là gì?
Lập trình Python cung cấp cho chúng tôi một bộ trang trí 9 tích hợp, giúp việc sử dụng getter và setters dễ dàng hơn nhiều trong lập trình hướng đối tượng. Show
Trước khi đi sâu vào chi tiết về nhà trang trí 9 là gì, trước tiên chúng ta hãy xây dựng trực giác về lý do tại sao nó sẽ cần thiết ngay từ đầu.Lớp không có getters và settersChúng ta hãy giả sử rằng chúng ta quyết định tạo ra một lớp lưu trữ nhiệt độ theo độ C. Nó cũng sẽ thực hiện một phương pháp để chuyển đổi nhiệt độ thành độ Fahrenheit. Một cách để làm điều này là như sau:
Chúng ta có thể tạo các đối tượng ra khỏi lớp này và thao tác thuộc tính 37 98.600000000000011 như chúng ta muốn:
Đầu ra 37 98.60000000000001 Các vị trí thập phân bổ sung khi chuyển đổi thành Fahrenheit là do lỗi số học điểm nổi. Để tìm hiểu thêm, hãy truy cập lỗi số học của Python Point. Bất cứ khi nào chúng tôi gán hoặc truy xuất bất kỳ thuộc tính đối tượng nào như 37 98.600000000000011 Như được hiển thị ở trên, Python tìm kiếm nó trong thuộc tính từ điển 37 98.600000000000013 tích hợp của đối tượng.
Do đó, 37 98.600000000000014 nội bộ trở thành 37 98.600000000000015. Sử dụng getters và settersGiả sử chúng ta muốn mở rộng khả năng sử dụng của lớp C, được xác định ở trên. Chúng tôi biết rằng nhiệt độ của bất kỳ vật thể nào cũng không thể đạt dưới -273,15 độ C. Hãy cập nhật mã của chúng tôi để thực hiện ràng buộc giá trị này. Một giải pháp rõ ràng cho các hạn chế trên sẽ là ẩn thuộc tính 37 98.600000000000011 (làm cho nó riêng tư) và xác định các phương thức Getter và Setter mới để thao tác nó. Điều này có thể được thực hiện như sau:
Như chúng ta có thể thấy, phương pháp trên giới thiệu hai phương thức 37 98.600000000000017 và 37 98.600000000000018 mới. Hơn nữa, 37 98.600000000000011 đã được thay thế bằng 0. Một dấu gạch dưới 1 lúc đầu được sử dụng để biểu thị các biến riêng trong Python.Bây giờ, hãy sử dụng triển khai này:
Đầu ra 37 98.60000000000001 Traceback (most recent call last): File " Các vị trí thập phân bổ sung khi chuyển đổi thành Fahrenheit là do lỗi số học điểm nổi. Để tìm hiểu thêm, hãy truy cập lỗi số học của Python Point. Bất cứ khi nào chúng tôi gán hoặc truy xuất bất kỳ thuộc tính đối tượng nào như
Do đó, 37 98.600000000000014 nội bộ trở thành 37 98.600000000000015. Sử dụng getters và setters Giả sử chúng ta muốn mở rộng khả năng sử dụng của lớp C, được xác định ở trên. Chúng tôi biết rằng nhiệt độ của bất kỳ vật thể nào cũng không thể đạt dưới -273,15 độ C. Hãy cập nhật mã của chúng tôi để thực hiện ràng buộc giá trị này.Một giải pháp rõ ràng cho các hạn chế trên sẽ là ẩn thuộc tính 37 98.600000000000011 (làm cho nó riêng tư) và xác định các phương thức Getter và Setter mới để thao tác nó. Điều này có thể được thực hiện như sau:
Như chúng ta có thể thấy, phương pháp trên giới thiệu hai phương thức 37 98.600000000000017 và 37 98.600000000000018 mới. Hơn nữa, 37 98.600000000000011 đã được thay thế bằng 0. Một dấu gạch dưới 1 lúc đầu được sử dụng để biểu thị các biến riêng trong Python.
Bây giờ, hãy sử dụng triển khai này:
Đầu ra 0Các vị trí thập phân bổ sung khi chuyển đổi thành Fahrenheit là do lỗi số học điểm nổi. Để tìm hiểu thêm, hãy truy cập lỗi số học của Python Point. Bất cứ khi nào chúng tôi gán hoặc truy xuất bất kỳ thuộc tính đối tượng nào như 37 98.600000000000011 Như được hiển thị ở trên, Python tìm kiếm nó trong thuộc tính từ điển 37 98.600000000000013 tích hợp của đối tượng. 1Do đó, Sử dụng getters và setters Giả sử chúng ta muốn mở rộng khả năng sử dụng của lớp C, được xác định ở trên. Chúng tôi biết rằng nhiệt độ của bất kỳ vật thể nào cũng không thể đạt dưới -273,15 độ C. 2Hãy cập nhật mã của chúng tôi để thực hiện ràng buộc giá trị này. Một giải pháp rõ ràng cho các hạn chế trên sẽ là ẩn thuộc tính 0 variable. The 37 98.600000000000011 attribute is a property object which provides an interface to this private variable. Như chúng ta có thể thấy, phương pháp trên giới thiệu hai phương thức 37 98.600000000000017 và 37 98.600000000000018 mới.Hơn nữa, 37 98.600000000000011 đã được thay thế bằng 0. Một dấu gạch dưới 1 lúc đầu được sử dụng để biểu thị các biến riêng trong Python. 3where,
Việc tái cấu trúc này có thể gây ra vấn đề trong khi xử lý hàng trăm ngàn dòng mã. 4Nói chung, bản cập nhật mới của chúng tôi không tương thích ngược. Đây là nơi 9 đến giải cứu. 5có thể bị phá vỡ như: 6Hai đoạn mã này là tương đương. Các lập trình viên quen thuộc với các nhà trang trí Python có thể nhận ra rằng cấu trúc trên có thể được thực hiện như là nhà trang trí. Chúng tôi thậm chí không thể xác định tên 2 và 3 vì chúng không cần thiết và gây ô nhiễm không gian tên lớp.Đối với điều này, chúng tôi sử dụng lại tên 37 98.600000000000011 trong khi xác định các hàm getter và setter của chúng tôi. Hãy xem cách thực hiện điều này như một người trang trí: 7Đầu ra 8Việc thực hiện trên là đơn giản và hiệu quả. Đó là cách khuyến nghị để sử dụng 7.
Thuộc tính và thuộc tính trong Python là gì?Các thuộc tính được mô tả bởi các biến dữ liệu, ví dụ như tên, tuổi, chiều cao, vvproperies là loại thuộc tính đặc biệt. Hai loại thuộc tính: thuộc tính lớp. Properties are special kind of attributes. Two types of attributes: Class attribute.
Một nhà trang trí tài sản trong Python là gì?Bộ trang trí @Property trong Python, Property () là một hàm tích hợp tạo và trả về một đối tượng thuộc tính.Cú pháp của hàm này là: property (fget = none, fset = none, fdel = none, doc = none) trong đó, fget là chức năng để nhận giá trị của thuộc tính.FSET là chức năng để đặt giá trị của thuộc tính.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) where, fget is function to get value of the attribute. fset is function to set value of the attribute.
Chú thích tài sản Python là gì?@Property là một công cụ trang trí tích hợp cho hàm tài sản () trong Python.Nó được sử dụng để cung cấp chức năng "đặc biệt" cho một số phương pháp nhất định để làm cho chúng hoạt động như getters, setters hoặc deleter khi chúng ta xác định các thuộc tính trong một lớp.a built-in decorator for the property() function in Python. It is used to give "special" functionality to certain methods to make them act as getters, setters, or deleters when we define properties in a class.
Tài sản của Python là quan trọng?Nhà trang trí @Property được coi là cách ưa thích để xác định các phương thức getters, setters và deleters.Bằng cách xác định các thuộc tính, chúng tôi tạo một lớp trung gian trong lớp của chúng tôi để kiểm soát cách người khác có thể truy cập dữ liệu bằng cách không ảnh hưởng đến cấu trúc mã đã được phát triển.@property decorator is considered the preferred way of defining getters, setters, and deleters methods. By defining properties, we create an intermediate layer in our class to control how others can access the data by not affecting the code structure that has been developed. |