Bài viết này thảo luận về các lớp dữ liệu trong Python 3. 7 và cung cấp hướng dẫn giới thiệu về các lớp dữ liệu trong Python 3. 7 trở lên.
Lớp dữ liệu là một khái niệm mới được giới thiệu trong Python 3. 7 phiên bản. Bạn có thể sử dụng các lớp dữ liệu không chỉ như một nơi chứa kiến thức mà còn để viết mã nồi hơi cho bạn và đơn giản hóa quá trình tạo lớp vì nó đi kèm với một số phương thức được triển khai miễn phí. Một lớp dữ liệu cũng có thể được coi là một danh mục thường chứa dữ liệu, nhưng chúng không giới hạn ở đó.
Các lớp dữ liệu cơ bản
Các cách sau đây cho thấy cách tạo một lớp dữ liệu cơ bản
1. sử dụng trang trí. Chúng được tạo bằng trình trang trí @dataclass mới
Thí dụ.
Python3
# import package
from
dataclasses
import
dataclass
# make a dataclass with decorator
@dataclass
class
DataClassGFG:
from
0from
1from
2
from
0from
4from
5
from
7
from
8from
9 dataclasses
0dataclasses
1dataclasses
2dataclasses
3dataclasses
4
dataclasses
6
dataclasses
7____28
đầu ra
DataClassGFG[Công việc=’Tác giả’, Mức lương=50000. 0]
2. Sử dụng make_dataclass[]
Thí dụ.
Python3
# import package
from
dataclasses
import
import
3
import
5
import
7from
9 import
9dataclass
0dataclass
1dataclass
2dataclasses
2dataclass
4dataclass
5
from
7
from
8from
9 dataclasses
0dataclasses
1dataclasses
2dataclasses
3dataclasses
4
dataclasses
6
dataclasses
7____28
đầu ra
DataClassGFG[Công việc=’Tác giả’, Mức lương=50000. 0]
3. Sử dụng têntuple. Sử dụng phương thức namedtuple[] từ các bộ sưu tập. Tương tự như make_dataclass[]
Thí dụ.
Python3
# import package
from
# make a dataclass with decorator
1import
# make a dataclass with decorator
3
# make a dataclass with decorator
5
import
7from
9 # make a dataclass with decorator
9dataclass
0dataclass
1dataclass
2dataclasses
2dataclass
4dataclass
5
from
7
from
8from
9 dataclasses
0dataclasses
1dataclasses
2dataclasses
3dataclasses
4
dataclasses
6
dataclasses
7____28
đầu ra
DataClassGFG[Công việc=’Tác giả’, Mức lương=50000. 0]
Các lớp dữ liệu bất biến
Một trong những tính năng xác định của nametuple mà chúng ta đã thấy trước đó là nó không thay đổi. e. , giá trị của các trường của nó có thể không bao giờ thay đổi. Đối với một số loại lớp dữ liệu, đây thường là một ý tưởng tuyệt vời để tạo một lớp không thay đổi và để đạt được điều này, chỉ cần đặt freeze=True khi bạn tạo nó.
Thí dụ.
Python3
# import package
from
dataclasses
import
dataclass
# make a dataclass with decorator
_______7____97from
9____99dataclasses
4
class
DataClassGFG:
from
0from
1from
2
from
0from
4from
5
from
7
from
8from
9 dataclasses
0dataclasses
1dataclasses
2dataclasses
3dataclasses
4
dataclasses
6
dataclasses
7____28
from
23
from
24from
9 from
26
đầu ra
DataClassGFG[Công việc=’Tác giả’, Mức lương=50000. 0]
Traceback [cuộc gọi gần đây nhất cuối cùng]
File “main.py”, line 17, in
DataClassObject. Công việc = “Nhà văn”
File “”, line 4, in __setattr__
lớp dữ liệu. FrozenInstanceLỗi. không thể gán cho trường 'Công việc'
Lớp dữ liệu linh hoạt
Chúng ta đã thảo luận về một số phương pháp để tạo lớp dữ liệu và bây giờ chúng ta sẽ nghiên cứu một số tính năng nâng cao hơn như tham số cho trình trang trí @dataclass. Thêm tham số vào lớp dữ liệu cung cấp cho chúng tôi nhiều quyền kiểm soát hơn khi tạo lớp dữ liệu
Thí dụ
Python3
# import package
from
dataclasses
import
dataclass
from
from
33import
from
35
# make a dataclass with decorator
@dataclass
class
DataClassGFG:
from
0from
1from
2
from
0from
4from
5
from
47
@dataclass
class
from
50
from
0____152____135____154
from
56
from
57from
9 dataclasses
0dataclasses
1dataclasses
2dataclasses
3dataclasses
4
from
64from
9 dataclasses
0from
26dataclasses
2from
69dataclasses
4
from
72
dataclasses
7____174
dataclasses
7____176
from
78
from
79from
9 from
81
dataclasses
6
dataclasses
7____185
đầu ra
DataClassGFG[Công việc=’Tác giả’, Mức lương=50000. 0]
DataClassGFG[Công việc=’Nhà văn’, Mức lương=40000. 0]
GFGJobs[Jobs=[DataClassGFG[Job=’Tác giả’, Mức lương=50000. 0], DataClassGFG[Công việc='Nhà văn', Mức lương=40000. 0]]]
Tối ưu hóa các lớp dữ liệu
Để tối ưu hóa các lớp dữ liệu, chúng tôi sử dụng các vị trí. Các vị trí thường được sử dụng để làm cho các lớp nhanh hơn và sử dụng ít bộ nhớ hơn. Các lớp dữ liệu không có bất kỳ cú pháp rõ ràng nào để làm việc với các vùng, nhưng cách tạo vùng truyền thống cũng hoạt động với các lớp dữ liệu