[Python-Dev] Semantic of isinstance
"Martin v. Löwis"
martin at v.loewis.de
Tue Jun 27 14:49:59 CEST 2006
More information about the Python-Dev mailing list
Tue Jun 27 14:49:59 CEST 2006
- Previous message: [Python-Dev] Semantic of isinstance
- Next message: [Python-Dev] Semantic of isinstance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Phillip J. Eby wrote: >> It seems that the __class__ is only accessed in some cases, but not >> always, leading to what I think is a semantic inconsistency. > > It's not inconsistent - isinstance() checks __class__ in *addition* to > type() in order to allow proxying tricks like lying about your > __class__. It therefore returns true if either your real type *or* your > __class__ matches, and as you can see, the real type is checked first. This is not the original rationale, though: the check for a __class__ attribute on non-instance objects was introduced in r13520, to support ExtensionClasses. I never fully understood ExtensionClasses, but I believe they were not based on proxying tricks. Instead, they were an early version of new-style classes. Regards, Martin
- Previous message: [Python-Dev] Semantic of isinstance
- Next message: [Python-Dev] Semantic of isinstance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list