> ...(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