Возможный дубликат:
Может ли метод класса быть декоратором?
здесь пример.
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()
но я не думаю, что это хорошая практика, я хочу определить метод проверки внутри моего класса.