> ...(if it is possible) how can I get, from method "called", the name > of function/method that called it (in this case "caller")?
The traceback module will give you access to the call stack. >>> import traceback >>> def foo(): ... return traceback.extract_stack() ... >>> def bar(): ... return foo() ... >>> foo() [('<stdin>', 1, '<module>', None), ('<stdin>', 2, 'foo', None)] >>> bar() [('<stdin>', 1, '<module>', None), ('<stdin>', 2, 'bar', None), ('<stdin>', 2, 'foo', None)] However, this seems like one of those it-matters-where-you-call-it- from functions from days of yore. They're generally considered to be a bad idea and was one of the patterns that prompted a rather famous essay by Dijkstra. I'd recommend exploring other design alternatives and leave this monstrosity in peace. Cheers, Aaron -- http://mail.python.org/mailman/listinfo/python-list