Декораторы Python - это один из способов удалить это дублирование кода.Таким образом, вы можете определить 2 функции декоратора: is_connected и is_disconnected.В функциях декоратора вы можете получить доступ к self, чтобы проверить переменную.Вот скелет определения одного из них:
def is_connected(func):
def wrapper(self, *args, **kwargs):
# Do the check and raise any errors
if not self.connected:
raise ValueError()
func(*args, **kwargs)
return wrapper
Затем вы будете использовать их в функциях следующим образом:
@is_disconnected
def connect(self):
pass
@is_connected
def disconnect(self):
pass