我有以下代码段:
from decorators import before_save
class User(Model):
def before_save(self):
pass
@before_save
def meth(self):
pass
似乎当我尝试装饰meth
时,它“使用”实例方法before_save
,而不是导入的装饰器。我怎样才能声明一个与装饰器同名的实例方法,并且仍能正确使用它们?
装饰者不应该按预期工作吗?如何将before_save
实例方法引用为before_save
,而不引用其类?
答案 0 :(得分:3)
答案 1 :(得分:2)
您可以更改导入名称:
from decorators import before_save as before_save_decorator
class User(Model):
def before_save(self):
pass
@before_save_decorator
def meth(self):
pass
这应该让你使用两者。
答案 2 :(得分:2)
或者您可以在:
之后定义before_save
方法
from decorators import before_save
class User(Model):
@before_save
def meth(self):
pass
def before_save(self):
pass
但这不是最好的解决方案,因为在这里发生的事情并不明显,你可以在以后忘记。