thomas.steffe...@googlemail.com wrote: > Hello, > > I have a Class: > > class myClass: > def __init__(self): > # do something > print "name of class = " + self.__class__.__name__ > > def myMethod(self): > # do something > print "name of method = " + "myMethod" > return > > ... > > I print the name of the class with self.__class__.__name__ in > __init__. > I want to print also in every method of myClass the name of the > method. > How can I get the name? I would not like to write e.g. "myMethod". Is > there a variable like self.__class__.__name__ for this? > Thanks for your hints, Thomas
This can be done by inspecting the stackframes. Look into the module inspect. This has also been discussed very often on this list, stackframe & inspect should be good searchterms. However, if what you are after is logging, you should take a look into the logging module. it has many advantages over simple print-statements, and amongst other things allows you to print out the enclosing callable name when invoked ala logger.debug("Some message.") I strongly recommend using that. And at least you can of course peek into the logging module's source to see how the extract that information. Diez -- http://mail.python.org/mailman/listinfo/python-list