Щоб отримати ім'я поточної функції або методу всередині неї, врахуйте:
import inspect
this_function_name = inspect.currentframe().f_code.co_name
sys._getframeтакож працює замість цього, inspect.currentframeхоча остання уникає доступу до приватної функції.
Щоб отримати замість імені функції виклику, розгляньте f_backяк в inspect.currentframe().f_back.f_code.co_name.
Якщо ви також використовуєте mypy, то можна поскаржитися, що:
помилка: Елемент "None" у "Необов'язково [FrameType]" не має атрибута "f_code"
Щоб придушити вищевказану помилку, врахуйте:
import inspect
import types
from typing import cast
this_function_name = cast(types.FrameType, inspect.currentframe()).f_code.co_name