Carsten Klein added the comment: The change was introduced in r30 (Python/symtable.c @ near where it reads /* Special-case super: it counts as a use of __class__ */) which now enforces that a class that calls super on init will have the correct class information present.
I do not think that this is a bug and that it should be fixed. Instead it enforces both type safety in respect to classes deriving from a given class hierarchy being forced to report their actual class instead of some fabricated and customly induced one. If you require such behaviour then you should implement your own meta class that will then override the __class__ property. And, yes, I do think that Python < 3.0 was wrong in the assumption that one could build up class hierarchies and then break out of that class hierarchy by simply providing a __class__ property that would return a different value as what one would expected. What do the others think? ---------- nosy: +carsten.kl...@axn-software.de _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12370> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com