Знаете, что в Python можно получить имя вызывающего контекста без передачи аргументов? — 31 марта 2026 г. в 16:49:15.782
Знаете, что в Python можно получить имя вызывающего контекста без передачи аргументов? Иногда нужно логировать, откуда был вызов, но прокидывать имя функции через декораторы не всегда удобно и перегружает API: sys._getframe() _getframe() даёт доступ к текущему стеку выполнения: код, локальные переменные и вызывающий контекст. sys._getframe(1) Смещение 1 — это уже вызывающий frame (контекст), откуда был сделан вызов: frame.f_code.co_name Так можно получить имя функции (или "<module>", если вызов из модуля), а также файл и строку, без изменения сигнатур: f"{frame.f_code.co_name}:{frame.f_lineno}" Этот приём можно использовать в логгерах, трассировщиках и debug-инструментах для получения контекста. Python Ready | #совет

