Ho una classe denominata Server che può essere avviata e arrestata. Alcuni metodi non dovrebbero essere chiamati a meno che il Server non sia avviato, nel qual caso dovrebbe essere sollevata una NotConnectedException. C'è un modo per chiamare un metodo prima di ogni metodo in una classe e determinare se la variabile di classe _started è impostata su True?Controllare le condizioni prima del metodo chiamare
Ho provato a utilizzare un decoratore, ma la funzione decoratore non ha accesso alla variabile di classe. Stavo cercando di fare qualcosa di simile:
class Server(object):
_started = False
def started(self):
if(self._started == False):
raise NotConnectedException
@started
def doServerAction(self):
...
hai provato a mettere il decoratore direttamente in classe? Non ho lavorato abbastanza sui decoratori per sapere quanto avrebbe funzionato, ma è dove vorrei iniziare a cercare – inspectorG4dget
come questo [post] (http://stackoverflow.com/questions/2366713/can-a-python-decorator- of-an-instance-method-access-the-class) ha detto, se è python2.6 o successivo, c'è un modo per il decoratore di accedere alla variabile di classe – xvatar
@ inspectorG4dget Sì, il decoratore è nella classe. – BlueVoid