重写的方法是不是继承python中的装饰器?
Posted
技术标签:
【中文标题】重写的方法是不是继承python中的装饰器?【英文标题】:Do overridden methods inherit decorators in python?重写的方法是否继承python中的装饰器? 【发布时间】:2011-05-20 00:18:54 【问题描述】:正如标题所说,被覆盖的方法会继承装饰器吗?
class A:
@memoized
def fun(self, arg):
return None
class B(A):
def fun(self, arg):
#computations
return something
B.fun() 也维护装饰器吗?
【问题讨论】:
当你尝试时,你观察到了什么? 我不同意这是因为不首先尝试而值得一票否决的事情。这是一个明确的问题,有一个明确的答案。如果您不了解如何自己编写装饰器,则在继承方法中使用装饰器是完全有效的。 “这是一个有明确答案的明确问题”与先尝试完全无关。接受提示。先试试吧。 我知道的老问题 - martineau 的 cmets 是可以理解的,但我倾向于说 Falmarri 的问题仍然很有价值,因为 SO 是关于分享知识并使其他人更容易找到答案。它不必自己编写测试代码,从而节省了其他人的时间。我认为不值得投反对票。 我同意@AlexandreH。这个问题使我免于自己尝试。你们其他人这么快就炸毁了正在努力学习的其他人,真为你们感到羞耻。 【参考方案1】:这样想
class A(object):
def fun(self, arg):
return None
fun = memoized(fun)
【讨论】:
【参考方案2】:没有。这是一个完全不同的功能。但是您可以使用虚拟装饰器自己尝试一下。
【讨论】:
【参考方案3】:不,它没有。
【讨论】:
以上是关于重写的方法是不是继承python中的装饰器?的主要内容,如果未能解决你的问题,请参考以下文章