Anonymus functions revisited

Ron radam2 at tampabay.rr.com
Wed Mar 23 09:26:58 EST 2005


On 23 Mar 2005 10:13:16 GMT, Duncan Booth
<duncan.booth at invalid.invalid> wrote:

>Do I really need to mention that the whole concept here is broken. This 
>only works if you call it from global scope. If you call it from inside a 
>function it [usually] won't work:

Ok... you can get globals this way if you know how many frames up it
is. Not terrable useful. :/


def frame0():
    print 'frame0 (locals): ',sys._getframe(0).f_locals
    print '\nframe1 (parent): ',sys._getframe(1).f_locals
    print '\n(Global) : ',sys._getframe(2).f_locals

def frame1():
	frame0()
	
import sys
frame1()


>>>
frame0 (locals):  {}

frame1 (parent):  {}

(Global) :  {'__builtins__': <module '__builtin__' (built-in)>, 'sys':
<module 'sys' (built-in)>, '__name__': '__main__', 'frame1': <function
frame1 at 0x00B437B0>, 'frame0': <function frame0 at 0x00B43770>,
'__doc__': None}
>>> 




More information about the Python-list mailing list