frame.f_locals['__class__'] -- When does it (not) exist and why?

Chris Angelico rosuav at
Sun Nov 16 06:40:05 CET 2014

On Sun, Nov 16, 2014 at 4:25 PM,  <kevinarpe at> wrote:
> When super().__init__() is called, a 'magic' local appears in frame.f_locals called '__class__'.  Helpfully, it has the correct class for the context, which will differ from type(self).  (I discovered this magic local by poking around in the debugger.  I am unable to find any official documentation on it.)

Interesting. Are you sure you can't get the class name via the
function, rather than depending on this magic local? That seems

Your example code isn't currently runnable ("def class"); can you
provide a self-contained program that actually attempts to display
something? It'd be helpful for those of us who aren't familiar with
internal and esoteric details of tracebacks and __init__ :)


More information about the Python-list mailing list