Using Python - Frozen dataclass:
- The simplest immutable structure:
from dataclasses import dataclass
@dataclass(frozen = True)
class simple_person:
name: str
surname: str
ID: str
hobbies: str = None #Optional Parameter
John = simple_person("John", "Carter", 102012)- Structure with “laws” and an invisible parameter at declaration “immutable_metadata”
from dataclasses import dataclass
add_new_field = object.__setattr__
@dataclass(frozen=True)
class immutable_metadata:
metadata1
metadata2
@dataclass(frozen=True)
class Immutable:
a: int
b: int
def __post_init__(self):
print(type(self.a))
if self.a is int: raise Exception
if self.b is int: raise Exception
metadata = immutable_metadata("porva","p")
add_new_field(self, "metadata", metadata)
imm = Immutable(1,2)
print(imm.a)
print(imm.metadata.metadata1)
print(imm.metadata.metadata2)