Задать вопрос
stympel
@stympel
подпивасник

Как узнать имя функции, вызвавшей класс?

У меня есть класс, который должен писать логи. Да я знаю, что есть loguru и встроенный модуль и тд...

class Logger:
    @staticmethod
    def push_function_log(function_name: str, message: str):
        записать_лог(..., ..., data={"function": f"{function_name}", "message": f"{message}"})

Я могу как-то в методе push_function_log отлавливать функцию, которая вызвала этот метод, чтобы избавиться от написания имя функции вручную?

Насколько вижу в гугле, это можно сделать через inspect, но только ли через него это можно сделать?
  • Вопрос задан
  • 222 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 2
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
@dzhebrak
Еще вариант:
import sys
sys._getframe(1).f_code.co_names

https://habr.com/ru/post/255239/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы