Thay thế lớp dữ liệu Python

dataclassy là sự triển khai lại các lớp dữ liệu trong Python - một giải pháp thay thế cho mô-đun dataclasses tích hợp để tránh nhiều cạm bẫy phổ biến của nó. dataclassy được thiết kế linh hoạt hơn, ít dài dòng hơn và mạnh mẽ hơn so với dataclasses, trong khi vẫn giữ được giao diện quen thuộc

Nói tóm lại, dataclassy là một thư viện để di chuyển dữ liệu xung quanh các chương trình Python của bạn được tối ưu hóa cho tốc độ, sự đơn giản và sự hài lòng của nhà phát triển

from dataclassy import dataclass
from typing import Dict

@dataclass
class Pet:
    name: str
    species: str
    fluffy: bool
    foods: Dict[str, int] = {}

Tại sao nên sử dụng lớp dữ liệu?

Phần này mô tả các động lực khác nhau để sử dụng phân lớp dữ liệu thay vì phân lớp dữ liệu

Nâng cấp các lớp dữ liệu của bạn

  • tùy chọn trang trí mới
    • pip install dataclassy
      
      77 tạo
      pip install dataclassy
      
      0 để giảm dung lượng bộ nhớ và cải thiện hiệu suất tra cứu thuộc tính
    • pip install dataclassy
      
      1 nối danh sách tham số của
      pip install dataclassy
      
      2 vào
      pip install dataclassy
      
      3 để sử dụng các đối số không mong muốn
    • pip install dataclassy
      
      4 cho phép hủy cấu trúc các thể hiện của lớp, giống như các bộ dữ liệu được đặt tên
    • pip install dataclassy
      
      5 tự động ẩn các trường riêng khỏi
      pip install dataclassy
      
      6 và loại trừ chúng khỏi so sánh và lặp lại
  • Cách sử dụng và tùy chọn của
    pip install dataclassy
    
    7 được kế thừa [các lớp con không phải sử dụng lại trình trang trí]
  • các trường có thể theo bất kỳ thứ tự nào - các trường có giá trị mặc định được sắp xếp lại - làm cho việc kế thừa trở nên khả thi
  • các thùng chứa có thể thay đổi [
    pip install dataclassy
    
    8,
    pip install dataclassy
    
    9,
    pip install dataclassy
    
    10 và hơn thế nữa] được sao chép tự động khi được sử dụng làm giá trị mặc định
  • chức năng mới.
    pip install dataclassy
    
    11 và
    pip install dataclassy
    
    12

Ngoài ra, lớp dữ liệu

  • thực hiện tất cả các tùy chọn trang trí của dataclasses
  • rất nhỏ [~150 LỘC; khoảng 25% kích thước của lớp dữ liệu]
  • nhanh, phù hợp với hiệu suất của lớp dữ liệu khi
    pip install dataclassy
    
    13 và vượt quá đáng kể khi
    pip install dataclassy
    
    14
  • được thử nghiệm với CPython 3. 6 - 3. 10 và PyPy 3. 6 - 3. 7
  • hỗ trợ nhiều kế thừa và siêu dữ liệu tùy chỉnh
  • đi kèm với sự hỗ trợ cho mypy

khác biệt khác

API của dataclassy bị ảnh hưởng mạnh mẽ bởi dataclasses', nhưng tập trung vào sự tối giản và sang trọng

  • không có
    pip install dataclassy
    
    15 hoặc
    pip install dataclassy
    
    16. Sử dụng
    pip install dataclassy
    
    17,
    pip install dataclassy
    
    18 hoặc
    pip install dataclassy
    
    19 để tái tạo các chức năng của nó
  • không có
    pip install dataclassy
    
    10. Chỉ cần thêm đối số vào
    pip install dataclassy
    
    11
  • không cần
    pip install dataclassy
    
    12. Chỉ cần bỏ qua gợi ý loại của trường để bỏ qua nó

Cũng xem xét

  • pip install dataclassy
    
    13 nếu bạn cần xác thực phức tạp và chuyển đổi loại
  • pip install dataclassy
    
    14 nếu bạn cần kiểm tra loại nghiêm ngặt

Cách sử dụng

Cài đặt

Cài đặt bản phát hành mới nhất từ ​​PyPI với pip

pip install dataclassy

Hoặc cài đặt phiên bản phát triển mới nhất ngay từ kho lưu trữ này

pip install dataclassy
1

di cư

API của dataclassy tương tự như dataclasses. Nếu bạn chỉ đơn giản sử dụng trình trang trí và các chức năng khác, có thể di chuyển ngay lập tức từ lớp dữ liệu sang lớp dữ liệu bằng cách thay đổi đơn giản

pip install dataclassy
1

đến

pip install dataclassy
9

Nếu không, bạn sẽ phải thực hiện một vài lần tái cấu trúc dễ dàng [điều đó sẽ khiến bạn có mã sạch hơn. ]. Tham khảo bảng bên dưới Sự khác biệt hoặc bỏ qua phần Ví dụ để xem hoạt động của lớp dữ liệu

Điểm tương đồng

trình trang trí

pip install dataclassy
15 của dataclassy lấy tất cả các đối số giống như dataclasses', cộng với đối số của chính nó và do đó sẽ là một sự thay thế thả xuống

dataclassy cũng thực hiện tất cả các chức năng của dataclasses.

pip install dataclassy
16,
pip install dataclassy
17,
pip install dataclassy
18,
pip install dataclassy
19,
pip install dataclassy
90 và
pip install dataclassy
91 [hai cái cuối cùng có bí danh lần lượt là từ
pip install dataclassy
92 và
pip install dataclassy
93] và chúng sẽ hoạt động như bạn mong đợi

sự khác biệt

Mặc dù API của dataclassy tương tự như dataclasses', nhưng khả năng tương thích với nó không phải là mục tiêu [điều này tương tự như mối quan hệ giữa Crystal và Ruby]

dataclassy có một số điểm khác biệt quan trọng so với dataclasses, chủ yếu phản ánh phong cách tối giản và cách triển khai của nó. Những khác biệt này được liệt kê bên dưới và được mở rộng đầy đủ trong phần tiếp theo

dataclassesdataclassyinit-only các trường biến có loại
pip install dataclassy
10đối số đến
pip install dataclassy
11trường biến lớp có loại
pip install dataclassy
12trường không có loại chú thích mặc định có thể thay đổi
pip install dataclassy
97
pip install dataclassy
98giá trị mặc định động
pip install dataclassy
99
pip install dataclassy
50trường bị loại trừ khỏi
pip install dataclassy
51
pip install dataclassy
52
pip install dataclassy
18 trình bao bọc loại hoặc trường
pip install dataclassy
54"khởi tạo muộn"
pip install dataclassy
55
pip install dataclassy
56lớp dữ liệu trừu tượng
pip install dataclassy
57
pip install dataclassy
58

Có một vài khác biệt nhỏ, quá

  • pip install dataclassy
    
    17 trả về
    pip install dataclassy
    
    50 thay vì
    pip install dataclassy
    
    51 và có một tham số bổ sung giúp lọc các trường nội bộ
  • Cố gắng sửa đổi một phiên bản bị đóng băng làm tăng
    pip install dataclassy
    
    52 kèm theo lời giải thích thay vì
    pip install dataclassy
    
    53

Cuối cùng, có một số cải tiến về chất lượng cuộc sống, mặc dù không liên quan trực tiếp đến quá trình di chuyển, nhưng sẽ cho phép bạn làm cho mã của mình sạch hơn

  • pip install dataclassy
    
    7 không cần phải được áp dụng cho mọi lớp con - hành vi và các tùy chọn của nó được kế thừa
  • Không giống như các lớp dữ liệu, các trường có giá trị mặc định không cần tuân theo những trường không có chúng. Điều này đặc biệt hữu ích khi làm việc với các lớp con, điều gần như không thể xảy ra với các lớp dữ liệu
  • dataclassy thêm chú thích loại
    pip install dataclassy
    
    55 để biểu thị các biến phải là thể hiện của lớp dữ liệu chung
  • dataclassy có
    pip install dataclassy
    
    11 được đề xuất như một công thức cho các lớp dữ liệu được tích hợp sẵn
  • Các phương thức so sánh được tạo [khi
    pip install dataclassy
    
    57] tương thích với các siêu kiểu và kiểu con của lớp. Điều này có nghĩa là các tập hợp các thể hiện không đồng nhất với cùng một siêu lớp có thể được sắp xếp

Cũng cần lưu ý rằng bên trong, lớp dữ liệu và lớp dữ liệu hoạt động theo những cách khác nhau. Bạn có thể nghĩ về lớp dữ liệu như biến lớp của bạn thành một loại vật khác [thực tế, nó sử dụng một siêu dữ liệu] và các lớp dữ liệu chỉ đơn thuần là thêm các thứ vào lớp của bạn [không phải vậy]

ví dụ

Những thứ cơ bản

Để định nghĩa một lớp dữ liệu, chỉ cần áp dụng trình trang trí

pip install dataclassy
7 cho một định nghĩa lớp [xem bên trên]

Không có đối số cho trình trang trí, lớp kết quả sẽ hoạt động rất giống với lớp tương đương từ mô-đun tích hợp. Tuy nhiên, trình trang trí của dataclassy có một số tùy chọn bổ sung so với dataclasses' và nó cũng được kế thừa để các lớp con của các lớp dữ liệu cũng tự động là các lớp dữ liệu

Trình trang trí tạo ra các phương thức khác nhau cho lớp. Cái nào phụ thuộc chính xác vào các tùy chọn cho người trang trí. Ví dụ:

pip install dataclassy
59 sẽ ngăn phương thức
pip install dataclassy
6 được tạo.
pip install dataclassy
7 tương đương với việc sử dụng trình trang trí với các tham số mặc định [i. e.
pip install dataclassy
7 và
pip install dataclassy
83 là tương đương]. Các tùy chọn cho trình trang trí được trình bày chi tiết đầy đủ trong phần tiếp theo

Biến lớp

Bạn có thể loại trừ hoàn toàn một thuộc tính lớp khỏi các cơ chế của dataclassy bằng cách chỉ định nghĩa nó mà không cần chú thích kiểu. Điều này có thể được sử dụng cho các biến lớp và hằng số

Sắp xếp lại tham số

dataclassy sửa đổi thứ tự của các trường khi chuyển đổi chúng thành tham số cho

pip install dataclassy
3 được tạo. Cụ thể, các trường có giá trị mặc định luôn theo sau những trường không có chúng. Điều này bắt nguồn từ yêu cầu của Python rằng các tham số có đối số mặc định tuân theo các tham số không có chúng. Về mặt khái niệm, bạn có thể nghĩ về quy trình tạo danh sách tham số như thế này

  1. dataclassy lấy các trường theo thứ tự định nghĩa
  2. nó chia chúng thành hai danh sách, danh sách đầu tiên là các trường không có giá trị mặc định và danh sách thứ hai là các trường có chúng
  3. nó nối thêm danh sách thứ hai vào danh sách đầu tiên

Quyết định thiết kế đơn giản này ngăn chặn lỗi

pip install dataclassy
85 đáng sợ mà bất kỳ ai đã cố gắng thực hiện kế thừa nghiêm túc bằng cách sử dụng các lớp dữ liệu đều sẽ biết rõ

Bạn có thể xác minh chữ ký của trình khởi tạo được tạo cho bất kỳ lớp nào bằng cách sử dụng

pip install dataclassy
86 từ mô-đun
pip install dataclassy
87. Ví dụ: sử dụng định nghĩa được liên kết ở trên,
pip install dataclassy
88 sẽ trả về
pip install dataclassy
89

Nếu sau đó chúng tôi quyết định phân lớp

pip install dataclassy
50 để thêm một trường mới,
pip install dataclassy
51

pip install dataclassy
5

Bạn sẽ thấy rằng

pip install dataclassy
52 trả về
pip install dataclassy
53

Di sản

Không giống như các lớp dữ liệu, trình trang trí của lớp dữ liệu chỉ cần được áp dụng một lần và tất cả các lớp con sẽ trở thành các lớp dữ liệu với các tùy chọn giống như lớp cha. Trình trang trí vẫn có thể được áp dụng lại cho các lớp con để áp dụng các tham số mới

Để thay đổi loại hoặc thêm hoặc thay đổi giá trị mặc định của một trường trong một lớp con, chỉ cần khai báo lại nó trong lớp con

Xử lý sau khởi tạo

Nếu một trình khởi tạo được yêu cầu [

pip install dataclassy
54], dataclassy sẽ tự động đặt các thuộc tính của lớp khi khởi tạo. Bạn có thể xác định mã sẽ chạy sau khi điều này xảy ra - đây được gọi là quá trình xử lý sau khi khởi tạo

Phương thức chứa logic này nên được gọi là

pip install dataclassy
11. Giống như với các lớp dữ liệu, nếu
pip install dataclassy
56 hoặc lớp không có trường, thì
pip install dataclassy
11 sẽ không được gọi

pip install dataclassy
5

Trong ví dụ này, khi lớp được khởi tạo với

pip install dataclassy
58, trường
pip install dataclassy
59 được tính là
pip install dataclassy
770

Giống như bất kỳ chức năng nào,

pip install dataclassy
11 của bạn cũng có thể nhận các tham số chỉ tồn tại trong ngữ cảnh của
pip install dataclassy
11. Chúng có thể được sử dụng cho các đối số của lớp mà bạn không muốn lưu trữ dưới dạng các trường. Một tham số không thể có tên của trường lớp;

Giá trị mặc định

Các giá trị mặc định cho các trường hoạt động chính xác như các đối số mặc định cho các hàm [và trên thực tế, đây là cách chúng được triển khai], với một điểm khác biệt. đối với các giá trị mặc định có thể sao chép, một bản sao được tạo tự động cho từng phiên bản lớp. Điều này có nghĩa là một bản sao mới của trường

pip install dataclassy
8
pip install dataclassy
774 trong
pip install dataclassy
50 ở trên sẽ được tạo mỗi khi nó được khởi tạo, do đó việc thêm vào thuộc tính đó trong một trường hợp sẽ không ảnh hưởng đến các trường hợp khác. "Mặc định có thể sao chép" được định nghĩa là bất kỳ đối tượng nào triển khai phương thức
pip install dataclassy
776, bao gồm tất cả các bộ sưu tập có thể thay đổi được tích hợp sẵn [bao gồm cả
pip install dataclassy
777]

Nếu bạn muốn tạo các phiên bản mới của các đối tượng không có phương thức

pip install dataclassy
776, hãy sử dụng hàm
pip install dataclassy
19. Hàm này nhận bất kỳ đối số không nào có thể gọi được. Khi lớp được khởi tạo, khả năng gọi này được thực thi để tạo ra giá trị mặc định cho trường

pip install dataclassy
8

API

Người trang trí

pip install dataclassy
00

Trình trang trí được sử dụng để biểu thị rằng một định nghĩa lớp sẽ trở thành một lớp dữ liệu. Trình trang trí trả về một lớp dữ liệu mới với các phương thức được tạo như chi tiết bên dưới. Nếu lớp đã định nghĩa một phương thức cụ thể, nó sẽ không được thay thế bằng phương thức đã tạo

Không có đối số, hành vi của nó, bề ngoài, gần giống với hành vi tương đương của nó trong mô-đun tích hợp. Tuy nhiên, trình trang trí của dataclassy chỉ cần được áp dụng một lần và tất cả các lớp con sẽ trở thành các lớp dữ liệu có cùng tham số. Trình trang trí vẫn có thể được áp dụng lại cho các lớp con để thay đổi tham số

Các trường của lớp dữ liệu được xác định bằng cú pháp chú thích kiểu của Python. Để thay đổi loại hoặc giá trị mặc định của một trường trong một lớp con, chỉ cần khai báo lại nó

Trình trang trí này tận dụng hai tính năng quan trọng không kém được thêm vào trong Python 3. 6. chú thích biến và từ điển được sắp xếp. [Cái sau về mặt kỹ thuật là một chi tiết triển khai của Python 3. 6, chỉ được chuẩn hóa trong Python 3. 7, nhưng là trường hợp cho tất cả các triển khai hiện tại của Python 3. 6, tôi. e. CPython và PyPy. ]

Tùy chọn trang trí

Thuật ngữ "trường", như được sử dụng trong phần này, đề cập đến một biến cấp lớp với chú thích kiểu. Để biết thêm thông tin, hãy xem tài liệu về

pip install dataclassy
01 bên dưới

pip install dataclassy
02

Nếu đúng [mặc định], hãy tạo một phương thức

pip install dataclassy
3 có tham số là tất cả các trường trong chuỗi thừa kế của nó. Chúng được sắp xếp theo thứ tự định nghĩa, với tất cả các trường có giá trị mặc định được đặt ở cuối, theo sau tất cả các trường không có chúng. Phương thức khởi tạo lớp bằng cách áp dụng các tham số này cho lớp dưới dạng thuộc tính. Nếu được xác định, nó cũng sẽ gọi
pip install dataclassy
11 với mọi đối số còn lại

Thứ tự này là một sự khác biệt quan trọng so với các lớp dữ liệu, trong đó tất cả các trường được sắp xếp đơn giản theo thứ tự định nghĩa và là thứ cho phép các lớp dữ liệu của lớp dữ liệu linh hoạt hơn nhiều về mặt kế thừa

Một bản sao nông sẽ được tạo cho các đối số có thể thay đổi [được định nghĩa là những đối số xác định phương thức

pip install dataclassy
776]. Điều này có nghĩa là các giá trị trường mặc định có thể thay đổi [e. g. một danh sách] sẽ không bị thay đổi giữa các phiên bản

pip install dataclassy
51

Nếu đúng [mặc định], hãy tạo một phương thức

pip install dataclassy
6 hiển thị tất cả các trường [hoặc nếu
pip install dataclassy
5 là đúng, tất cả các trường ngoại trừ các trường bên trong] của thể hiện lớp dữ liệu và các giá trị của chúng

pip install dataclassy
09

Nếu đúng [mặc định], hãy tạo phương thức

pip install dataclassy
10 để so sánh lớp dữ liệu này với lớp dữ liệu khác cùng loại như thể chúng là các bộ được tạo bởi
pip install dataclassy
93, ngoại trừ các trường nội bộ nếu
pip install dataclassy
5 là đúng

pip install dataclassy
13

Nếu đúng, một phương thức

pip install dataclassy
14 được tạo, làm cho lớp có thứ tự. Nếu
pip install dataclassy
09 cũng đúng, tất cả các phương pháp so sánh khác cũng được tạo. Các phương thức này so sánh lớp dữ liệu này với một lớp dữ liệu khác cùng loại [hoặc một lớp con] như thể chúng là các bộ được tạo bởi
pip install dataclassy
93, ngoại trừ các trường nội bộ nếu
pip install dataclassy
5 là đúng. Các quy tắc so sánh từ điển thông thường được áp dụng

pip install dataclassy
18

Nếu đúng, hãy buộc tạo một phương thức

pip install dataclassy
19 cố gắng băm lớp như thể nó là một bộ các trường có thể băm của nó. Nếu
pip install dataclassy
18 là sai, thì
pip install dataclassy
19 sẽ chỉ được tạo nếu cả
pip install dataclassy
09 và
pip install dataclassy
23 đều đúng

pip install dataclassy
23

Nếu đúng, các trường hợp trên danh nghĩa là bất biến. các trường không thể bị ghi đè hoặc xóa sau khi khởi tạo trong

pip install dataclassy
3. Cố gắng làm như vậy sẽ tăng một
pip install dataclassy
52. Cảnh báo. chịu một hình phạt hiệu suất khởi tạo đáng kể

pip install dataclassy
5

Nếu đúng [mặc định], các trường nội bộ không được bao gồm trong hàm so sánh

pip install dataclassy
6 được tạo [
pip install dataclassy
10,
pip install dataclassy
14, v.v. ], hoặc
pip install dataclassy
31

pip install dataclassy
4

Nếu đúng, hãy tạo phương thức

pip install dataclassy
31 trả về giá trị của các trường của lớp, theo thứ tự định nghĩa, lưu ý rằng các trường bên trong bị loại trừ khi
pip install dataclassy
5 là đúng. Điều này có thể được sử dụng để hủy cấu trúc một thể hiện của lớp dữ liệu, như với Scala
pip install dataclassy
35 hoặc Python
pip install dataclassy
36

pip install dataclassy
1

Nếu đúng, hãy thêm

pip install dataclassy
2 vào cuối danh sách tham số cho
pip install dataclassy
3. Điều này đơn giản hóa việc khởi tạo lớp dữ liệu từ các từ điển có thể có khóa ngoài các trường của lớp dữ liệu [i. e.
pip install dataclassy
40]

pip install dataclassy
77

Nếu đúng, hãy tạo thuộc tính

pip install dataclassy
0 cho lớp. Điều này làm giảm dung lượng bộ nhớ của các phiên bản và chi phí tra cứu thuộc tính. Tuy nhiên,
pip install dataclassy
0 đi kèm với một số hạn chế [ví dụ: đa thừa kế trở nên phức tạp] mà bạn nên biết

pip install dataclassy
44

Đặt tham số này để sử dụng siêu dữ liệu khác với dữ liệu của chính lớp dữ liệu. Siêu dữ liệu này phải phân lớp

pip install dataclassy
45

pip install dataclassy
46 tốt nhất được coi là kém ổn định hơn các phần của thư viện có sẵn trong không gian tên gốc. Chỉ sử dụng siêu dữ liệu tùy chỉnh nếu thực sự cần thiết

Chức năng

pip install dataclassy
47

Lấy một đối số không có thể gọi được và tạo một nhà máy thực thi có thể gọi được này để tạo giá trị mặc định cho trường tại thời điểm khởi tạo lớp

pip install dataclassy
48

Trả về True nếu

pip install dataclassy
49 là một lớp dữ liệu như được triển khai trong mô-đun này

pip install dataclassy
50

Trả về True nếu

pip install dataclassy
49 là một thể hiện của lớp dữ liệu như được triển khai trong mô-đun này

pip install dataclassy
52

Trả về lệnh của các trường của

pip install dataclassy
15 và kiểu của chúng.
pip install dataclassy
54 chọn có bao gồm các trường nội bộ hay không.
pip install dataclassy
15 có thể là một lớp dữ liệu hoặc một thể hiện của một lớp dữ liệu

Một trường được định nghĩa là một biến cấp lớp với chú thích kiểu. Các biến được định nghĩa trong lớp không có chú thích kiểu được loại trừ hoàn toàn khỏi sự xem xét của dataclassy. Do đó, các biến và hằng của lớp có thể được biểu thị bằng cách không có chú thích kiểu

pip install dataclassy
56

Trả về lệnh của các trường của

pip install dataclassy
15 và giá trị của chúng.
pip install dataclassy
54 chọn có bao gồm các trường nội bộ hay không.
pip install dataclassy
15 phải là một thể hiện của một lớp dữ liệu

pip install dataclassy
60

Tạo đệ quy một lệnh của các trường của thể hiện lớp dữ liệu và các giá trị của chúng

Hàm này được gọi đệ quy trên các lớp dữ liệu, được đặt tên là tuples và iterables

pip install dataclassy
61

Tạo đệ quy một bộ giá trị của các trường của thể hiện lớp dữ liệu, theo thứ tự định nghĩa

Hàm này được gọi đệ quy trên các lớp dữ liệu, được đặt tên là tuples và iterables

pip install dataclassy
62

Tự động tạo một lớp dữ liệu có tên

pip install dataclassy
63, trường
pip install dataclassy
17, giá trị trường mặc định
pip install dataclassy
65 và kế thừa từ
pip install dataclassy
66

pip install dataclassy
67

Trả lại một bản sao mới của

pip install dataclassy
15 với các giá trị trường được thay thế như được chỉ định trong
pip install dataclassy
69

Nhập gợi ý

pip install dataclassy
18

Trình bao bọc loại

pip install dataclassy
18 đánh dấu một trường là "nội bộ" đối với lớp dữ liệu. Các trường bắt đầu bằng chỉ báo thành ngữ "sử dụng nội bộ"
pip install dataclassy
72 hoặc chỉ báo thông dịch trường riêng tư
pip install dataclassy
73 sẽ tự động được coi là trường nội bộ. Do đó, trình bao bọc loại
pip install dataclassy
18 phục vụ như một phương pháp thay thế để chỉ ra rằng một trường là nội bộ đối với các tình huống mà bạn không thể đặt tên cho các trường của mình theo cách này

pip install dataclassy
17

Sử dụng

pip install dataclassy
17 để bọc chú thích loại của các trường mà bạn muốn đưa vào lớp dữ liệu'
pip install dataclassy
19. Giá trị được băm bởi
pip install dataclassy
19 bao gồm một bộ thuộc loại của thể hiện, theo sau là bất kỳ trường nào được đánh dấu là
pip install dataclassy
17

pip install dataclassy
55

Sử dụng gợi ý loại này để chỉ ra rằng một biến, tham số hoặc trường phải là một thể hiện của lớp dữ liệu chung. Ví dụ: dataclassy sử dụng những chức năng này trong chữ ký của

pip install dataclassy
92,
pip install dataclassy
93 và
pip install dataclassy
12 để chỉ ra rằng các chức năng này nên được gọi trên các thể hiện của lớp dữ liệu

hỗ trợ mypy

Để sử dụng dataclassy trong các dự án với mypy, bạn sẽ cần sử dụng plugin mypy. Bạn có thể tạo một

pip install dataclassy
84 hoặc
pip install dataclassy
85 cho những dự án như vậy với nội dung như sau

Tôi có nên luôn sử dụng Dataclass Python 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.

Tôi có thể sử dụng cái gì thay vì lớp trong Python?

6 lựa chọn thay thế cho các lớp trong Python. Tốc độ phát triển, thời gian thực thi, tuần tự hóa [khử] và khả năng bảo trì đều đóng một vai trò trong việc làm cho mã của bạn tỏa sáng. .
bộ dữ liệu. Tuples là một kiểu dữ liệu gốc. .
từ điển. .
Bộ dữ liệu được đặt tên. .
attrs. .
lớp dữ liệu. .
Pydantic

điểm của Dataclass 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 hàm để 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.

Sự khác biệt giữa lớp và Dataclass Python là gì?

Như đã đề cập trước đây, Các lớp dữ liệu Python rất giống với các lớp thông thường, nhưng với các chức năng của lớp được triển khai giúp giảm đáng kể số lượng mã soạn sẵn cần thiết để viết. An example of such boilerplate is the __init__ method.

Chủ Đề