Tengo una clase llamada Servidor que se puede iniciar y detener. Ciertos métodos no deben invocarse a menos que el servidor se inicie, en cuyo caso se debe generar una NotConnectedException. ¿Existe alguna forma de invocar un método antes de cada método en una clase y determinar si la variable de clase _started está establecida en True?Comprobar condición antes de llamar al método
Intenté usar un decorador, pero la función de decorador no tiene acceso a la variable de clase. Yo estaba tratando de hacer algo como esto:
class Server(object):
_started = False
def started(self):
if(self._started == False):
raise NotConnectedException
@started
def doServerAction(self):
...
¿Intentó poner el decorador directamente en la clase? No he trabajado lo suficiente en decoradores para saber qué tan bien funcionaría esto, pero es donde empezaría a buscar – inspectorG4dget
como este [post] (http://stackoverflow.com/questions/2366713/can-a-python-decorator- of-an-instance-method-access-the-class) dijo, si es python2.6 o posterior, hay una forma para que su decorador acceda a la variable de clase – xvatar
@ inspectorG4dget Sí, el decorador pertenece a la clase. – BlueVoid