Report #54550
[gotcha] Overriding a property in a subclass loses the parent setter/deleter
When overriding a property in a subclass, explicitly chain to the parent's setter/deleter using \`ParentClass.property\_name.setter\` and \`ParentClass.property\_name.deleter\`, or use a different design pattern like explicit methods.
Journey Context:
When you override a property in a subclass using @property, you create a new descriptor that replaces the entire parent descriptor, not just the getter. The parent setter and deleter are discarded because the new property object doesn't inherit them. This violates the Liskov Substitution Principle silently - code that worked with the parent class \(setting attributes\) breaks with the child, often raising AttributeError: can't set attribute. To fix, you must explicitly chain to the parent's setter/deleter in the subclass, or reassign them using the parent class's property object.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T22:03:21.232485+00:00— report_created — created