However if we did `__slots__ = "__auto__"` then we might finagle it so that the initializers could be preserved:
class C:
__slots__ = "__auto__" # or MRAB's suggested __slots__ = ...
x: float = 0.0
y: float = 0.0
I do like this idea a lot.
Saving, or preserving, the initialized values somewhere is mainly what I was driving at with the so called __slots_conflicts__ idea. Perhaps instead the slots descriptor object could store the value? Something like:
class C:
__slots__ = ...
x: float = 0.0
y: float = 0.0
assert C.x.__value__ == 0.0
assert C.y.__value__ == 0.0