Michael wrote: > def func2(): > <do some stuff 2> > print <self-name> > return True > > I imagine this means things like closures which I'm not familiar with > (I'm not a CS person). In this case, each function is part of a class, > so I imagine I can take a dir() of the class if necessary.
Use the inspect module to find out what you need. > > This leads into my next related question, which is How do I get some > sort of macro behavior so I don't have to write the same thing over and > over again, but which is also not neatly rolled up into a function, > such as combining the return statements with a printing of <self-name>? By rolling it up neatly in a function? >>> def printcaller(): print inspect.stack()[1][3] return True >>> def func1(): return printcaller() >>> func1() func1 True But remember this prints the name under which the function was created, not the name of the variable in which it is stored: >>> func2 = func1 >>> func2() func1 -- http://mail.python.org/mailman/listinfo/python-list