Hướng dẫn what is property and setter in python? - Thuộc tính và setter 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.
Setter trong Python là gì?Khoa học dữ liệu thực tế bằng cách sử dụng Python như tên cho thấy, Getters là các phương thức giúp truy cập các thuộc tính riêng tư hoặc nhận giá trị của các thuộc tính và setter riêng là các phương thức giúp thay đổi hoặc đặt giá trị của các thuộc tính riêng tư.the methods which help change or set the value of private attributes.
Một tài sản trong 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.
Getters và setters tài sản là gì?Getters và setters là gì?Getters: Đây là các phương pháp được sử dụng trong lập trình hướng đối tượng (OOPS) giúp truy cập các thuộc tính riêng tư từ một lớp.Setters: Đây là các phương thức được sử dụng trong tính năng OOPS giúp đặt giá trị thành các thuộc tính riêng tư trong một lớp.
Setter được sử dụng để làm gì?Getters và setters được sử dụng để bảo vệ dữ liệu của bạn, đặc biệt là khi tạo các lớp.Đối với mỗi biến thể hiện, một phương thức Getter trả về giá trị của nó trong khi một phương thức setter đặt hoặc cập nhật giá trị của nó.Cho rằng, getters và setters còn được gọi là người truy cập và đột biến, tương ứng.to protect your data, particularly when creating classes. For each instance variable, a getter method returns its value while a setter method sets or updates its value. Given this, getters and setters are also known as accessors and mutators, respectively. |