[Python-Dev] Re: getting at the current frame
barry@wooz.org
barry@wooz.org
Tue, 24 Oct 2000 17:34:54 -0400 (EDT)
>>>>> "GvR" == Guido van Rossum <guido@python.org> writes:
GvR> The other, perhaps more major, problem with this it is that
GvR> you can't easily wrap functions that use it in other
GvR> functions. Normally, if there's a function foo(arg) that
GvR> does something, I can write a function wrapfoo(arg) that does
GvR> something else, then calls foo(arg), and then does another
GvR> thing. But if foo() uses getframe(), that's not so easy: the
GvR> call to foo() in wrapfoo() will access wrapfoo()'s frame.
GvR> A way around this would be to implement foo as a call to
GvR> (e.g.) _foo(arg, frame), and define foo(arg) as _foo(arg,
GvR> sys.getframe()). Then _wrapfoo(arg, frame) could be defined
GvR> as a wrapper around _foo(arg, frame) and wrapfoo(arg) as
GvR> _wrapfoo(arg, sys.getframe()).
Darn good point. So where could we put it? It's a useful
introspection device. If it goes in a separate module, should that
perhaps be called `reflection'? Or maybe `runtime'? Or maybe
"sys._getframe()" is good enough.
-Barry