xxxxxxxxxx
from dataclasses import dataclass
@dataclass
class Rectangle:
# Constructor
height: float
width: float
@dataclass
class Square(Rectangle):
# initialization with default value
side: float = 4
# post initialize inheritance constructor
def __post_init__(self):
super().__init__(self.side, self.side)
sq = Square(height=10, width=2)
print(sq)
# output Square(height=4, width=4, side=4)
xxxxxxxxxx
# Standard way of writing a simple class
class Person1:
# Type hinting not required
def __init__(self, name: str, age: int, num_children=0):
self.name = name
self.age = age
self.num_children = num_children
def __repr__(self):
return f'My name is {self.name}, I am {self.age} years old, and I have {self.num_children} children'
from dataclasses import dataclass
# A class using data classes. Dataclasses are simpler but can't support operations during initialization
@dataclass()
class Person2:
""" This class handles the values related to a person. """
name: str # Indicating types is required
age: int
num_children = 0 # Default values don't require an indication of a type
def __repr__(self):
return f'My name is {self.name}, I am {self.age} years old, and I have {self.num_children} children'
# Both classes (Person1 and Person2) achieve the same thing but require different code to do it
person1 = Person1('Joe', 28, 2)
print(person1)
# Result: My name is Joe, I am 28 years old, and I have 2 children
person2 = Person2('Emma', 19)
print(person2)
# Result: My name is Emma, I am 19 years old, and I have 0 children
xxxxxxxxxx
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
email: str
# Creating an instance of Person
person = Person(name="Alice", age=30, email="alice@example.com")
# Accessing attributes
print(person.name) # Output: Alice
print(person.age) # Output: 30
print(person.email) # Output: alice@example.com
xxxxxxxxxx
# dataclass module is introduced in Python 3.7 as a utility tool
# to make structured classes specially for storing data.
# These classes hold certain properties and functions to deal
# specifically with the data and its representation.
pip install dataclasses
# Check other ans for the usage
xxxxxxxxxx
from dataclasses import dataclass
@dataclass
class Person:
Name: str = ''
Age: int = 0
# בנאי - המרה למחרוזת!
p = Person('Bob', '37')
print(p)
p2 = Person('Alice','28')
p3 = Person('Alice','28')
print(p == p2)
print (p2 == p3)