Примечание (июнь 2018 г.): сегодня я бы, вероятно, использовал модуль inspect
, см. Другие ответы
sys._getframe(1).f_code.co_name
как в примере ниже:
>>> def foo():
... global x
... x = sys._getframe(1)
...
>>> def y(): foo()
...
>>> y()
>>> x.f_code.co_name
'y'
>>>
Важное замечание: как видно из названия метода _getframe
(эй, оно начинается с подчеркивания), это не метод API, на который следует бездумно полагаться.