[Python-Dev] Instance variable access and descriptors (original) (raw)

Phillip J. Eby pje at telecommunity.com
Sun Jun 10 01:30:41 CEST 2007


At 12:23 AM 6/10/2007 +0300, Eyal Lotem wrote:

A. It will break code that uses instance.dict['var'] directly, when 'var' exists as a property with a set in the class. I believe this is not significant. B. It will simplify getattr's semantics. Python should always give precedence to instance attributes over class ones, rather than have very weird special-cases (such as a property with a set).

Actually, these are features that are both used and desirable; I've been using them both since Python 2.2 (i.e., for many years now). I'm -1 on removing these features from any version of Python, even 3.0.

C. It will greatly speed up instance variable access, especially when the class has a large mro.

...at the cost of slowing down access to properties and slots, by adding an extra dictionary lookup there.

Note, by the way, that if you want to change attribute lookup semantics, you can always override getattribute and make it work whatever way you like, without forcing everybody else to change their code.



More information about the Python-Dev mailing list