[Python-Dev] Should isinstance call __getattribute__?

2021年12月09日 07:51:08 -0800

I'm looking for some guidance on a bug report involving isinstance and 
__getattribute__` please.
The issue is that if your class overloads `__getattribute__`, calling 
isinstance on an instance will call the overloaded `__getattribute__` 
method when looking up `__class__`, potentially causing isinstance to 
fail, or return the wrong result.
See b.p.o. #32683 
https://bugs.python.org/issue32683
I see no reason why this isn't working as designed, __getattribute__ is 
intended to overload attribute access, and that could include the 
`__class__` attribute. Am I wrong?
It has been suggested that isinstance should call `object.__getattribute__` 
and bypass the class' overloaded method, but I expect that would 
probably break objects which intentionally lie about their class. 
(Mocks? Stubs? Proxies?)
Thanks,
Steve
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/W55NIIXBI2QNZUMTGTZNTXZ7TZSWUQ7F/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to