Друзья есть класс runner, у которого есть методы load_config, connect, run_query, run_sp и.т.д. каждый из которых устанавливает пременную класа state в свое значение. Как правильно реализовать проверку которая возбуждала бы исключение при неправильном порядке вызова методов, например вызываем run_query до connect используя декораторы.
Моя основная проблема в том что я не могу разобраться как из декоратора обратиться к переменной класса:
пример вымошленный:
class Runner:
def __check_state__(func):
return func
#как написать декоратор чтобы который возбуждал бы исключение если какой либо из методов запущен не в том порядке?
#как обратится в декораторе к self.state
@__check_state__
def __get_logger__(self, loglevel):
.......
self.state = STATE_LOGGING
@__check_state__
def connect(self):
.......
self.state = STATE_CONECTED