Python Mapping for Classes
Class Mapping
A Slice class maps to a Python dataclass with the same name. The generated class contains a field for each Slice field (just as for structures and exceptions). Consider the following class definition:
class TimeOfDay
{
short hour; // 0 - 23
short minute; // 0 - 59
short second; // 0 - 59
}
The Python mapping generates the following code for this definition:
@dataclass(eq=False)
class TimeOfDay(Value):
hour: int = 0
minute: int = 0
second: int = 0
tz: str = ""
# ...
The generated class TimeOfDay inherits from Ice.Value. This means that all classes implicitly inherit from Ice.Value, which is the ultimate ancestor of all classes.
All mapped fields have default values, such as 0 and the empty string (see Fields for details).
The mapped dataclass is configured with eq=False to provide reference-equality semantics like in other language mappings: two class instances are equal only when they are actually the same instance.