Slide 10
Slide 10 text
Creating data classes
• Data classes are mutable by nature which means the values of the fields can be modified
• However data classes can be modified to be immutable (similar to namedtuples)
• A data class is made immutable by passing frozen=True to the @dataclasses decorator
from dataclasses import dataclass
# Mutable
@dataclass
class Person:
name: str
age: int
gender: str
>>> person = Person(name='Jane', age=21, gender='Female')
>>> person.age
21
>>> person.age = 24
>>> person.age
24
# Immutable
@dataclass(frozen=True)
class Person:
name: str
age: int
gender: str
>>> person.age =24
Traceback (most recent call last):
File "", line 1, in
person.age =24
File "", line 3, in __setattr__
dataclasses.FrozenInstanceError: cannot assign to field 'age'
Mutability