Lớp dữ liệu python thêm thuộc tính
Đôi khi thật thú vị khi chỉ mê mẩn một lúc. Python là một trong những ngôn ngữ kịch bản phổ biến nhất hiện nay và chúng tôi cũng yêu thích nó. Đó là một lý do tại sao LogicMonitor có thể thực thi bất kỳ tập lệnh hoặc ngôn ngữ lập trình nào được môi trường của bạn hỗ trợ. Điều đó có nghĩa là bạn có thể tận hưởng các tính năng mới nhất của ngôn ngữ yêu thích trong công cụ giám sát yêu thích của mình (phải không?). Nếu Python là phó của bạn, hãy cho Python 3. Lớp dữ liệu của 7 hãy thử Show
Thấu hiểu quá khứ để trân trọng hiện tạiGroovy, một phần mở rộng của Java và PowerShell là hai ngôn ngữ mà tôi tin rằng hỗ trợ mạnh mẽ OOP theo cách thân thiện với người dùng. Chúng cho phép bạn thao tác nhanh các đối tượng tùy chỉnh và báo cáo giá trị của chúng. Python, trong khi cực kỳ phổ biến và mạnh mẽ, bị tụt lại phía sau một chút. Để xem một số ví dụ trước đây, hãy tìm kiếm trên internet về “thuộc tính lớp in Python”. Tại thời điểm của bài viết này, đây là một số kết quả tìm kiếm hàng đầu từ một trong những tài nguyên dành cho nhà phát triển phổ biến nhất, Stack Overflow Sẽ không tốt hơn nhiều nếu bạn cố gắng tìm kiếm Python 2 chính thức. 7 tài liệu cho các lớp học. Lưu ý mỗi khi các ví dụ của họ in thông tin về các lớp mà họ cho rằng bạn đã biết chính xác những gì bạn muốn hiển thị hoặc bạn sẵn sàng dành thời gian để in rõ ràng từng thuộc tính của lớp? Có thể bạn quan tâmDựa trên các kết quả tìm kiếm và câu trả lời, cũng như kinh nghiệm của bản thân, tôi thấy có hai thách thức chính khi làm việc với các đối tượng Python tùy chỉnh
Đối với những người ít hiểu biết về kịch bản, hãy sử dụng phép loại suy để giải thích vấn đề. Hãy hình dung một đối tượng lớp Python như một tờ báo vật lý chứa đầy những câu chuyện. Bạn là người đã in tờ báo này. Bạn đã biết những câu chuyện. Bạn cẩn thận đặt từng đoạn văn, câu chuyện và tiêu đề. Trong các phiên bản Python trước, khi bạn đưa tờ báo cho Python và để kiểm tra độ tỉnh táo, hãy yêu cầu nó đọc cho bạn một trong các bản tin, nó sẽ yêu cầu bạn chỉ định từng đoạn bạn muốn đọc thay vì chỉ đưa cho bạn toàn bộ câu chuyện. Dễ thương khi con bạn nói vậy; Python bắt đầu trưởng thànhNở muộn còn hơn không nởVào năm 2017, PEP 557 đã khái niệm hóa các Lớp dữ liệu, “tồn tại chủ yếu để lưu trữ các giá trị có thể truy cập được bằng cách tra cứu thuộc tính” và gần một năm sau, việc phát hành Python 3. 7. 0 chính thức cung cấp triển khai. Data Classes cõng tắt gợi ý kiểu (PEP 484) và chú thích kiểu (PEP 526), tương ứng được giới thiệu trong Python 3. 5 và 3. 6. Khi nói đến làm việc với các đối tượng, mọi người mong đợi có thể dự đoán các loại dữ liệu một cách nhất quán. Mặc dù Python vẫn không phải là ngôn ngữ được nhập chính xác, nhưng sự kết hợp giữa gợi ý kiểu và chú thích giúp cả người dùng và IDE biết loại dữ liệu nào sẽ mong đợi khi làm việc thông qua cơ sở mã lớn hơn Sự Lười Biếng Thúc Đẩy Tự Động HóaMột phần khác của sự trưởng thành là trung thực về điều bạn quan tâm và cách dành nhiều thời gian hơn để tập trung vào điều đó. Có thể đó chỉ là tôi, nhưng tôi cảm thấy như DataClass đã bị bán quá mức hoặc ai đó thực sự thích xử lý các quy trình tẻ nhạt. Các từ chính xác từ PEP 557 liên quan đến Lớp dữ liệu là “[…]thực sự không có gì đặc biệt về lớp. trình trang trí thêm các phương thức được tạo vào lớp và trả về cùng một lớp mà nó đã được cung cấp. […] Các lớp dữ liệu giúp bạn không phải viết và duy trì các phương thức này. ” Những "phương thức được tạo" này là gì? . Giả sử bạn có một lớp Python được định nghĩa như sau @dataclass class InventoryItem: '''Class for keeping track of an item in inventory.''' name: str unit_price: float quantity_on_hand: int = 0 def total_cost(self) -> float: return self.unit_price * self.quantity_on_hand Do đó, trình trang trí Lớp dữ liệu ("@dataclass"), sẽ tự động tạo mã sau đây cho bạn def __init__(self, name: str, unit_price: float, quantity_on_hand: int = 0) -> None: self.name = name self.unit_price = unit_price self.quantity_on_hand = quantity_on_hand def __repr__(self): return f'InventoryItem(name={self.name!r}, unit_price={self.unit_price!r}, quantity_on_hand={self.quantity_on_hand!r})' def __eq__(self, other): if other.__class__ is self.__class__: return (self.name, self.unit_price, self.quantity_on_hand) == (other.name, other.unit_price, other.quantity_on_hand) return NotImplemented def __ne__(self, other): if other.__class__ is self.__class__: return (self.name, self.unit_price, self.quantity_on_hand) != (other.name, other.unit_price, other.quantity_on_hand) return NotImplemented def __lt__(self, other): if other.__class__ is self.__class__: return (self.name, self.unit_price, self.quantity_on_hand) < (other.name, other.unit_price, other.quantity_on_hand) return NotImplemented def __le__(self, other): if other.__class__ is self.__class__: return (self.name, self.unit_price, self.quantity_on_hand) <= (other.name, other.unit_price, other.quantity_on_hand) return NotImplemented def __gt__(self, other): if other.__class__ is self.__class__: return (self.name, self.unit_price, self.quantity_on_hand) > (other.name, other.unit_price, other.quantity_on_hand) return NotImplemented def __ge__(self, other): if other.__class__ is self.__class__: return (self.name, self.unit_price, self.quantity_on_hand) >= (other.name, other.unit_price, other.quantity_on_hand) return NotImplemented Ba mươi dòng mã được tạo tự động đó chỉ dành cho ba thuộc tính. tên, đơn_giá và số_lượng. Lý do tại sao tôi tin rằng điều này bị bán quá mức đáng kể là do mức độ nỗ lực để tự tạo và duy trì các phương thức đó trở nên cực kỳ cồng kềnh khi bạn thêm nhiều thuộc tính lớp hơn. Ai cảm thấy thích đối phó với điều đó? . Smith làm nhưng một phần nhờ anh ấy, bạn không cần phải Lợi ích lớp dữ liệuChúng tôi có thể thấy một số lợi ích của Lớp dữ liệu dựa trên thông tin chúng tôi có cho đến nay
Cảnh báo lớp dữ liệuTheo PEP 557, Các lớp dữ liệu không có nghĩa là thay thế hoàn toàn bất kỳ thư viện Python nào khác. Hơn nữa, bài báo PEP nói rằng các Lớp dữ liệu không phù hợp khi
Sự kết luậnLớp dữ liệu Python kết hợp các tính năng Python hiện có thành một cú pháp khai báo, ngắn gọn để mang lại cho người dùng trải nghiệm được cải thiện khi quản lý các lớp được sử dụng chủ yếu để lưu trữ dữ liệu. Một trong những lợi ích chính của Lớp dữ liệu Python là bạn có thể nhanh chóng in các biểu diễn chuỗi của các lớp và thuộc tính của chúng. Do khả năng mở rộng mạnh mẽ của LogicMonitor, bạn có thể tận dụng các Lớp dữ liệu Python trong số tất cả các tính năng Python mới nhất khác trong quá trình giám sát và quản trị cổng thông tin của mình Lớp dữ liệu có thể có các phương thức không?Một lớp dữ liệu đề cập đến một lớp chỉ chứa các trường và phương thức thô để truy cập chúng (getters và setters) . Đây chỉ đơn giản là các thùng chứa dữ liệu được sử dụng bởi các lớp khác. Các lớp này không chứa bất kỳ chức năng bổ sung nào và không thể hoạt động độc lập trên dữ liệu mà chúng sở hữu.
Tôi có nên luôn sử dụng Dataclass không?Kết luận. dataclasses là một mô-đun mạnh mẽ giúp chúng tôi, những nhà phát triển Python, mô hình hóa dữ liệu của chúng tôi, tránh viết mã soạn sẵn và viết mã đẹp và sạch hơn nhiều . Tôi khuyến khích bạn khám phá và tìm hiểu thêm về các tính năng đặc biệt của lớp dữ liệu, tôi sử dụng nó trong tất cả các dự án của mình và tôi khuyên bạn cũng nên làm như vậy.
__ Post_init __ Python là gì?Phương thức __post_init__ được gọi ngay sau khi khởi tạo . Nói cách khác, nó được gọi sau khi đối tượng nhận được các giá trị cho các trường của nó, chẳng hạn như tên, lục địa, dân số và chính thức_lang.
@dataclass trong Python là gì?Lớp dữ liệu là các lớp python, nhưng phù hợp để lưu trữ các đối tượng dữ liệu . Mô-đun này cung cấp một trình trang trí và các chức năng để tự động thêm các phương thức đặc biệt đã tạo như __init__() và __repr__() vào các lớp do người dùng định nghĩa. |
Bài Viết Liên Quan
Hướng dẫn can we have 2 keys in dictionary python? - chúng ta có thể có 2 khóa trong từ điển python không?
Trong hướng dẫn Python này, chúng tôi sẽ thảo luận về nhiều khóa từ điển Python. Ở đây chúng tôi cũng sẽ bao gồm các ví dụ dưới đây:Python dictionary ...
Hướng dẫn is macbook pro m1 good for python programming? - macbook pro m1 có tốt cho lập trình python không?
Tôi đã tìm ra một giải pháp giải pháp - Cách cài đặt Numpy trên M1 Max, với hiệu suất tăng tốc nhất (Apples Veclib)? Đây là câu trả lời kể từ ngày 6 tháng ...
Hướng dẫn is javascript a glue language? - javascript có phải là ngôn ngữ keo không?
Ngôn ngữ keo được sử dụng ở khắp mọi nơi. Mặc dù bạn có thể xác định là Pythonista, hoặc Lua Fiend, hoặc một nhà phát triển C ++, tất cả chúng ta cuối ...
Hướng dẫn python typing none - python gõ không có
Trong Python, không có vô giá trị từ khóa, nhưng có Không có. Không có giá trị trả về của hàm doesn’t return anything. None is often used to represent the absence of a ...
Hướng dẫn python removesuffix - python removeuffix
Xem thảo luậnCải thiện bài viếtLưu bài viếtĐọcBàn luậnXem thảo luậnCải thiện bài viếtLưu bài viếtĐọcstr.removesuffix(suffix, /) function removes the suffix ...
Chụp màn hình samsung j6 2023
. Camera kép chụp ảnh xóa phông theo xu thế. Thiết kế của Samsung Galaxy J6 có tạo được ấn tượng?. Camera đủ mạnh, dễ dàng sử dụng. Những lý do bạn nên ...
Hướng dẫn web scraping load more button python - web cạo tải thêm nút python
from selenium import webdriver import time driver = ...
Hướng dẫn deletion distance python - xóa khoảng cách python
Tôi đã giải quyết vấn đề này tại Pramp và tôi gặp khó khăn trong việc tìm ra thuật toán cho vấn đề này.Nội phân Chính showShowMã ví dụLàm thế nào để ...
Hướng dẫn can we use return in if statement python? - chúng ta có thể sử dụng lệnh return trong if python không?
Giả sử tôi có một tuyên bố if với if(A > B): return A+1 else: return A-1 0. Từ góc độ hiệu quả, tôi nên sử dụngif(A > B): return A+1 return A-1 hoặcif(A > ...
Hướng dẫn what is late static binding in php for? - liên kết tĩnh trễ trong php để làm gì?
Chính xác thì các ràng buộc tĩnh muộn trong PHP là gì? Mark Amery133K78 Huy hiệu vàng395 Huy hiệu bạc444 Huy hiệu đồng78 gold badges395 silver badges444 bronze badges Đã ...
Hướng dẫn how to fetch data from database in php using mysqli - làm thế nào để tìm nạp dữ liệu từ cơ sở dữ liệu trong php bằng cách sử dụng mysqli
❮ Php mysqli tham khảoVí dụ - Phong cách định hướng đối tượngTìm nạp các hàng từ một kết quả đã đặt:?> Nhìn vào ví dụ về phong cách thủ tục ở phía ...
Hướng dẫn input two numbers and display the largest number in python - nhập hai số và hiển thị số lớn nhất trong python
Chương trình Python để tìm thấy lớn nhất trong số hai sốChúng tôi có nhiều cách tiếp cận để có được con số lớn nhất trong số hai số, và ở đây chúng ...
Xe máy lấn tuyến phạt bao nhiêu tiền 2023
Trả lời: Vụ Pháp chế - Bộ GTVT trả lời như sau: Theo quy định tại Điều 24 Nghị định số 34/2010/NĐ-CP ngày 02/4/2010 của Chính phủ quy định xử phạt vi ...
Hướng dẫn node js change html content - nút js thay đổi nội dung html
Bạn không thể sửa đổi từ phía nút theo cách mà tôi nghĩ rằng bạn đang cố gắng làm. Bạn có thể gửi lại phản hồi cho phía máy khách và trên phản hồi ...
Hướng dẫn dùng numeral definition python - sử dụng python định nghĩa số
Kiểu dữ liệu Number trong Python lưu trữ các giá trị số. Chúng là các kiểu dữ liệu immutable, hay là kiểu dữ liệu không thay đổi, nghĩa là các thay đổi về ...
Hướng dẫn php mysqli export to csv - php mysqli xuất sang csv
Tôi đã cố gắng trong nhiều ngày để xuất từ một truy vấn một số giá trị trong .csv với mysqli, nhưng tôi có vấn đề khi xuất, mọi thứ đang xuất ...
Hướng dẫn can you have logic in css? - bạn có thể có logic trong css?
Gói lênCSS rất có khả năng làm thay đổi các hệ thống bố trí thông minh và phản ứng. Các cấu trúc và thuật toán kiểm soát của nó có thể hơi kỳ lạ so ...
Hướng dẫn how check string is english or not in php? - làm thế nào để kiểm tra chuỗi là tiếng anh hay không trong php?
Trong JS tôi đã sử dụng mã này:if(string.match(/[^A-Za-z0-9]+/)) Nhưng tôi không biết, làm thế nào để làm điều đó trong PHP. Benmorel32,8K48 Huy hiệu vàng173 Huy hiệu ...
Hướng dẫn dùng ord meaning python
Nội dung chínhNội dung chính ShowSắp xếp dictionary python theo thứ tự tăng dần | hàm sorted()Sắp xếp theo key | phương thức keys()Sắp xếp theo value | phương thức ...
Hướng dẫn date of birth validation in php - xác thực ngày sinh trong php
Demo: Ví dụ làm việc.Php ngày của tập lệnh xác minh sinhĐịnh dạng ngày xác thựcKiểm tra giới hạn tuổi bằng cách so sánh ngàyTính toán tuổi của bạnKiểm ...