Есть ли способ передать пользовательскую функцию в качестве параметра в методе класса и получить объект, вызывающий эту функцию? Я пишу собственный регистратор и хотел бы сделать что-то вроде этого
class Logger:
def __init__(self, ...):
self.logger = logging.getLogger('name')
...
def write(self, writeFunction, message):
self.logger.writeFunction(message) # something like this
self.logger.call(writeFunction, args=[message]) # or something like this in other languages
, где writeFunction
- это что-то вроде info()
, debug()
, et c (я знаю, что приведенный выше пример не 'Не разрешено в python)
Попытка избежать необходимости передавать уровень журнала в качестве параметра и выполнить кучу операторов if, чтобы определить, какую функцию ведения журнала вызывать
ОБНОВЛЕНИЕ: Я обнаружил что у регистраторов есть метод log()
, который делает то, что я ищу, но как насчет других объектов в целом?