Recently I have been learning about managed attributes in Python and a common theme with properties and descriptors is, that they have to be assigned as class attributes. But nowhere can I find an explanation of why and especially why they cannot be assigned as instance attributes. So my question has actually two parts:
- why do properties / descriptor instances have to be class attributes?
- why can properties / descriptor instances not be instance attributes?