[Python-Dev] Non implementation dependent access to calling scope

Michael Foord fuzzyman at voidspace.org.uk
Sat Mar 10 13:19:22 CET 2007

Hello all,

I realise that this may be more relevant to Python ideas, in which case 
feel free to ignore this (and my apologies).

I occasionally see code looking (something) like :

calling_scope = sys._getframe(1).f_globals['__name__']

This looks and smells like a hack (not least because of the warning in 
the documentation about _getframe), plus stack frames are an 
implementation detail so this code is broken on IronPython. This makes 
me sad.

It would be great to have a specified way to obtain [a read only view on 
(?)] the locals and globals from the calling scope. Perhaps built in 
functions ? If they were specified then the IronPython guys would have 
to implement it for us. B-)

I realise that this can allow bad some bad programming patterns, but 
there are times when it can be very useful.

All the best,

Michael Foord

More information about the Python-Dev mailing list