Optimizing Data Classes
For optimizing the data classes we use slots. Slots are often used to make classes faster and use less memory. Data classes don’t have any explicit syntax for working with slots, but the traditional way of making slots works for data classes also.
Example:
Python3
# import package from dataclasses import dataclass # make a dataclass with decorator @dataclass class DataClassGFG: Job: str Salary: float @dataclass class SlotClassGFG: __slots__ = [ "Job" , "Salary" ] Job: str Salary: float # make objects with values required by dataclass DataClassObject1 = DataClassGFG( "Author" , 50000.00 ) DataClassObject2 = SlotClassGFG( "Writer" , 40000.00 ) # view dataclass objects print (DataClassObject1) print (DataClassObject2) # view dataclass object slot print (DataClassObject2.__slots__) |
Output:
DataClassGFG(Job=’Author’, Salary=50000.0)
SlotClassGFG(Job=’Writer’, Salary=40000.0)
[‘Job’, ‘Salary’]
Inheritance
We can simply use the concept of inheritance by creating sub data class of a data class.
Example:
Python3
# import package from dataclasses import dataclass # make a dataclass with decorator @dataclass class DataClassGFG: Job: str Salary: float @dataclass class SubDataClassGFG(DataClassGFG): Standard: str = "Top" Salary: float = 100000.00 # make objects with values required by dataclass DataClassObject1 = DataClassGFG( "Author" , 100000.00 ) DataClassObject2 = DataClassGFG( "Author" , 50000.00 ) # view dataclass objects print (DataClassObject1) print (DataClassObject2) # make object with values required by subdataclass SubDataClassObject = SubDataClassGFG( "Author" ) # view subdataclass object print (SubDataClassObject) |
Output:
DataClassGFG(Job=’Author’, Salary=100000.0)
DataClassGFG(Job=’Author’, Salary=50000.0)
SubDataClassGFG(Job=’Author’, Salary=100000.0, Standard=’Top’)
The Ultimate Guide to Data Classes in Python 3.7
This article discusses data classes in Python 3.7 and provides an introductory guide for data classes in Python 3.7 and above.
Data Class is a new concept introduced in Python 3.7 version. You can use data classes not only as a knowledge container but also to write boiler-plate code for you and simplify the process of creating classes since it comes with some methods implemented for free. A data class could also be considered as a category typically containing data, but they aren’t limited to that.