Всем привет - имеем такой логер.
class LoggerHandler:
"""
Responsible for logging logs
"""
SUPPORT_NAME_FILE: str = 'file'
SUPPORT_NAME_CONSOLE: str = 'console'
LEVEL_DEBUG = 'debug'
LEVEL_INFO = 'info'
LEVEL_ERROR = 'error'
LEVEL_WARNING = 'warning'
LEVEL_FATAL = 'fatal'
FILE_NAME = 'log.txt'
_instance = None
def __init__(self):
self.__logger = LoggerBuilder.build(Config())
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
cls._instance.__logger = LoggerBuilder.build(Config())
return cls._instance
def write(self, event: LoggerMessages, **kwargs) -> None:
pass
Сам по себе класс является синглтоном, и иницилизируется ядром программы.
Мне очень хочется провернуть вот какой трюк, я хочу что бы метод write был доступен как динамическое так и статическое свойство. (Я знаю что я не должен этого хотеть - но мне очень хочется изе...эм... удобный класс). т.к. логер используется по сути везде где угодно. Но понятие не имею как это сделать, понятно только пока только одно, что при вызове этого метода как статического надо чекать что инстанс существует. Но вот как сделать возможность такова (возможность вызова write как статического так и динамического свойства)?