【发布时间】:2012-06-09 21:31:05
【问题描述】:
我有一个名为 Server 的类,它可以启动和停止。除非启动服务器,否则不应调用某些方法,在这种情况下应引发 NotConnectedException。有没有办法在类中的每个方法之前调用一个方法并确定类变量_started是否设置为True?
我尝试使用装饰器,但装饰器函数无法访问类变量。我试图做这样的事情:
class Server(object):
_started = False
def started(self):
if(self._started == False):
raise NotConnectedException
@started
def doServerAction(self):
...
【问题讨论】:
-
你试过把装饰器直接放在课堂上吗?我在装饰器上的工作还不够多,不知道这会有多好,但这是我开始寻找的地方
-
正如post所说,如果是python2.6或更高版本,你的装饰器有办法访问类变量
-
@inspectorG4dget 是的,装饰器在类中。
-
@xvatar 看起来可能很接近,但我仍然不确定如何访问方法装饰器中的类变量。
标签: python