In Python , every function is an object. But how then to get a reference to this object inside the function? The function does not see any
self inside itself.
What's stopping you from using the function name?
>>> def foo(): ... return foo ... >>> foo() <function foo at 0x7f7cd66fba60> >>> foo <function foo at 0x7f7cd66fba60>
If the function name is unknown, then it cannot be retrieved. This functionality has been deprecated.
But, as they say, if you really want to, then there are several options. I wouldn't recommend doing this unless you really need to.
import inspect def foo(): print inspect.stack()
import sys def foo(): print sys._getframe().f_code.co_name
You can get the method, knowing the name of the function, through the
Attention! According to the documentation , not all python implementations can include
sys._getframe . This is a function for internal use of the CPython interpreter and may not work for others. Use at your own risk