Python: Introduction to DataClasses
Tito
Posted on April 27, 2022
Introduction
This article will be explaining the concept of data class introduced in python 3.7+.My assumption are you are conversant with python in particular object-oriented Programming. However, I will briefly explain the concept and redirect you to more resources.
Classes Recap:
- What is a class ?
it can simply be defined as an object constructor or a blueprint of creating an object.
Example
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
line 1: class definition with the name of the object (Student).
line 2 to 4: Object constructor.The init() function is called automatically every time the class is being used to create a new object.
NB:
The self parameter is a reference to the current instance of the class, and is used to access variables that belongs to the class.It does not have to be named self , you can call it whatever you like, but it has to be the first parameter of any function in the class.
DataClasses
The new dataclass() decorator provides a way to declare data classes. A data class describes its attributes using class variable annotations. Its constructor and other magic methods, such as repr(), eq(), and hash() are generated
automatically.
Example 1:
Consider the example of Student object created above, but now modified.
from dataclasses import dataclass
@dataclass
class Student:
name: str
age: int
def greet_student(self) -> str:
return f'Hello {self.name}, you are {self.age} years old'
p = Student('Tito',16)
print(p.greet_student())
Output:
Hello Tito, you are 16 years old
Example 2:
from dataclasses import dataclass
@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
From the above example, you will notice we have omitted the init() constructor , data class will added it automatically. Data class will help you create object easily and add more configurations to your objects.Now that you have a basic understanding of data classes in python. In our next episode I will be diving deep into data classes concepts.
Follow for more content.
Posted on April 27, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.