可能重复:
类方法可以是装饰器吗?
这是一个例子。
class myclass:
def __init__(self):
self.start = False
def check(self):
return not self.start
def doA(self):
if self.check():
return
print('A')
def doB(self):
if self.check():
return
print('B')
如您所见,我想以装饰器的方式编写检查操作,但是经过多次尝试后,我发现我只能在课堂外编写该方法。请教我如何在课堂内编写它,谢谢
编辑:
我可以这样写代码:
def check(func):
def checked(self):
if not self.start:
return
func(self)
return checked
class myclass:
def __init__(self):
self.start = False
@check
def doA(self):
print('A')
@check
def doB(self):
print('B')
a = myclass()
a.doA()
a.doB()
a.start = True
a.doA()
a.doB()
但我认为这不是一个好习惯,我想在我的类中定义检查方法。