Q70: What are Data Descriptors vs Non-Data Descriptors and their lookup precedence?
- Data Descriptor: Implements
__get__()AND__set__()(or__delete__()). Has higher priority than instance__dict__. - Non-Data Descriptor: Implements
__get__()only (e.g. methods). Has lower priority than instance__dict__. Lookup Order: Data Descriptor -> Instance__dict__-> Non-Data Descriptor -> Class__dict__.
Key Takeaways
- Data descriptors override instance
__dict__attributes. - Non-data descriptors yield priority to instance
__dict__attributes.
Knowledge Check
Which attribute location takes precedence over a Data Descriptor during attribute lookup?