Um den Namen der aktuellen Funktion oder Methode aus dem Inneren heraus zu erhalten, beachten Sie:
import inspect
this_function_name = inspect.currentframe().f_code.co_name
sys._getframe
funktioniert auch anstelle von inspect.currentframe
obwohl letztere den Zugriff auf eine private Funktion vermeidet.
Um stattdessen den Namen der aufrufenden Funktion zu erhalten, sollten Sie f_back
wie in inspect.currentframe().f_back.f_code.co_name
.
Wenn Sie auch mypy
kann sie sich darüber beschweren:
Fehler: Element "None" von "Optional[FrameType]" hat kein Attribut "f_code"
Um den obigen Fehler zu unterdrücken, sollten Sie überlegen:
import inspect
import types
from typing import cast
this_function_name = cast(types.FrameType, inspect.currentframe()).f_code.co_name