1 | initial version |
Initialization arguments can be validated using Python dataclass by defining a method called __post_init__
in the dataclass. This method is called after the instance has been initialized with the given arguments and can be used to validate those arguments.
Here's an example:
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
def __post_init__(self):
if self.age < 0:
raise ValueError("Age cannot be negative.")
In this example, we define a Person
dataclass with two attributes, name
and age
. We define a __post_init__
method that checks if the age is negative and raises a ValueError
if it is.
Now, when we initialize a Person
object, the __post_init__
method will be called automatically, and the argument validation will be performed.
p = Person("Alice", 25) # This works fine
p = Person("John", -10) # This raises ValueError: Age cannot be negative.
By using __post_init__
, we can keep the validation logic inside the dataclass, making our code more organized and Pythonic.