Можно с помощью рефлексии:
import inspect
caller = inspect.stack()[1][3]
# или
curframe = inspect.currentframe()
calframe = inspect.getouterframes(curframe, 2)
caller = calframe[1][3]
Но это не очень хорошая идея с позиции архитектурных принципов проектирования ПО.