Почему я не могу просто определить «производную» переменную в определении класса и присвоить ей вычисленное значение вместо использования для этого метода __post_init__?
Пример:
Почему я не могу просто определить «производную» переменную в определении класса и присвоить ей вычисленное значение вместо использования для этого метода __post_init__? Пример: [code]from dataclasses import dataclass, field
@dataclass class Sensor_Interface: name : str def __post_init__(self): self.inp_On = self.name + '.inp_On'
@dataclass class Sensor_Interface_2: name : str = "Sensor" inp_On : str = name + '.inp_On'
x = Sensor_Interface(name = "MySensor") x2 = Sensor_Interface_2(name = "Mysensor2") print(x.inp_On) print(x2.inp_On) [/code] Оба определения классов работают. Так что же плохого в использовании второго стиля?