why should property / descriptor instances be class attributes?
They donβt have to be, they just are. It was a constructive solution, which probably has many more reasons for backing it up than I can think of (simplifying the implementation, separating classes from objects).
Why are property / descriptor instances not instance attributes?
They may be, you can always override __getattribute__ to call any descriptors available on the instance, or even prohibit them if you want.
Keep in mind that just because Python doesn't stop you from doing this doesn't mean it's a good idea.
Jim fasarakis hilliard
source share