Как узнать имя метода, который вызвал метод? Здравствуйте. Предположим есть классclass BasePluginClass:
def Print(self, data):
# тут нужно узнать имя метода, из которого был вызов
#run = "Run"
print data
def Run(self):
self.Print("string")
Есть какой-нибудь кошерный способ?

21 Авг 2019 в 07:06
165 +1
0
Ответы
1

Да, можно использовать стандартный модуль traceback. Вот пример использования:

import traceback
class BasePluginClass:
def Print(self, data):
calling_method = traceback.extract_stack()[-2][2]
print("Called from method:", calling_method)
print(data)
def Run(self):
self.Print("string")
obj = BasePluginClass()
obj.Run()

Этот код будет выводить имя метода, из которого был вызван метод Print.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир