[Python-Dev] Semantic of isinstance

Martin Maly Martin.Maly at microsoft.com
Tue Jun 27 05:04:41 CEST 2006

Thanks for the response. The code snippet I sent deals with new style classes only so I assume that in some cases isinstance falls back to old-style-like handling which then asks for __bases__ and __class__ etc, possibly incorrectly so on new style classes.

Thanks again!

-----Original Message-----
From: Greg Ewing [mailto:greg.ewing at canterbury.ac.nz]
Sent: Monday, June 26, 2006 8:00 PM
To: Martin Maly
Cc: python-dev at python.org
Subject: Re: [Python-Dev] Semantic of isinstance

Martin Maly wrote:

>>>>isinstance(D(), D)
> True
>>>>isinstance(D(), C)
> D.getclass
> True

This looks like a new/old class thing. Presumably once
everything is changed over to new-style classes, this
inconsistency will go away. And from the current behaviour,
it looks like __class__ and __bases__ will be bypassed
by isinstance() (unless Guido decides to change that).

Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury,          | Carpe post meridiem!                 |
Christchurch, New Zealand          | (I'm not a morning person.)          |
greg.ewing at canterbury.ac.nz        +--------------------------------------+

More information about the Python-Dev mailing list