【问题标题】: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。这个问题使我免于自己尝试。你们其他人这么快就炸毁了正在努力学习的其他人,真为你们感到羞耻。

标签: python inheritance decorator


【解决方案1】:

这样想

class A(object):
    def fun(self, arg):
        return None
    fun = memoized(fun)

【讨论】:

    【解决方案2】:

    没有。这是一个完全不同的功能。但是您可以使用虚拟装饰器自己尝试一下。

    【讨论】:

      【解决方案3】:

      不,它没有。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-16
        • 2019-08-02
        • 2020-06-03
        • 2011-03-01
        • 2019-11-27
        • 2019-06-10
        • 2019-03-15
        • 2011-03-23
        相关资源
        最近更新 更多