使用与实例方法同名的装饰器
Use decorator with same name as an instance method
我有以下片段:
from decorators import before_save
class User(Model):
def before_save(self):
pass
@before_save
def meth(self):
pass
似乎当我尝试装饰 meth
时,它 "uses" 实例方法 before_save
,而不是导入的装饰器。我怎样才能仍然声明一个与装饰器同名的实例方法并且仍然能够正确地使用它们?
装饰器不应该按预期工作吗?怎么可能像 before_save
一样引用 before_save
实例方法,而不引用其 class?
您可以尝试以下方法
import decorators
# omitted
@decorators.before_save
def meth(self):
pass
我想使用单线,但 运行 变成了 。
您可以更改导入名称:
from decorators import before_save as before_save_decorator
class User(Model):
def before_save(self):
pass
@before_save_decorator
def meth(self):
pass
这应该可以让您同时使用两者。
或者您可以在以下位置定义 before_save
方法:
from decorators import before_save
class User(Model):
@before_save
def meth(self):
pass
def before_save(self):
pass
但这不是最好的解决方案,因为这里发生的事情并不明显,你可以稍后忘记。
我有以下片段:
from decorators import before_save
class User(Model):
def before_save(self):
pass
@before_save
def meth(self):
pass
似乎当我尝试装饰 meth
时,它 "uses" 实例方法 before_save
,而不是导入的装饰器。我怎样才能仍然声明一个与装饰器同名的实例方法并且仍然能够正确地使用它们?
装饰器不应该按预期工作吗?怎么可能像 before_save
一样引用 before_save
实例方法,而不引用其 class?
您可以尝试以下方法
import decorators
# omitted
@decorators.before_save
def meth(self):
pass
我想使用单线,但 运行 变成了
您可以更改导入名称:
from decorators import before_save as before_save_decorator
class User(Model):
def before_save(self):
pass
@before_save_decorator
def meth(self):
pass
这应该可以让您同时使用两者。
或者您可以在以下位置定义 before_save
方法:
from decorators import before_save
class User(Model):
@before_save
def meth(self):
pass
def before_save(self):
pass
但这不是最好的解决方案,因为这里发生的事情并不明显,你可以稍后忘记。