如何将装饰器应用于子类中的超类方法?

阿里·瓦里斯

说,我们有以下情况,

class A():
    def something():
        ...
        ...
        ...


class B(A):
    def use_something():
        ...
        ...
        # Now, at this point I want something() to be decorated with a 
        # decorator. But, since it is already defined in base class, 
        # I am not getting how to decorate it here, in the subclass.
        self.something()
        ...
        ...

现在,在B类中,我想使用A类中的something(),但我想为其应用装饰器。我无法在A类中对其进行装饰,因为我想在不同的地方应用不同的装饰器。说,类C(A),我也想在这里使用其他装饰器使用something()。

因此,回到原来的问题;如何在子类中将装饰器应用于超类的方法?

马库斯·梅斯卡宁(Markus Meskanen)

有什么特殊原因导致您不能仅仅覆盖something()

class A():
    def something(self):
        ...

class B(A):
    def use_something(self):
        ...
        self.something()
        ...

    def something(self):
        # Do "decorator" stuff
        super().something()
        # Do more "decorator" stuff

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用类装饰器将装饰器应用于所有类方法

如何将装饰器应用于python中的子例程

将装饰器类应用于另一个类的方法

JS TS将装饰器应用于所有方法/枚举类方法

python-如何将装饰器应用于用C编写的Python函数?

如何将装饰器应用于Cython cpdef函数

如何将django @transaction装饰器应用于芹菜任务

如何将装饰器应用于任意函数并在闭包内调用它?

将装饰器应用于访问类属性的类方法

如何将休眠注释应用于抽象类的子类

装饰器何时何地应用于@angular包中的装饰类

将超类数组扩展应用于子类实例的数组

如何将Dash回调装饰器适当地应用于包含选择项的Plotly Figurewidget

如何将 css 应用于多行类选择器

CSS:如何将样式应用于特定类

如何将javascript应用于多个类?

如何将CSS类应用于上传的图片?

如何将 CSS 应用于这个 div 类?

装饰器未将渲染功能应用于流星+ React应用中的类原型

如何将函数应用于数组中的所有元素(在C ++模板类中)

将装饰器应用于第三方类

将python装饰器应用于所有继承的类

如何将类应用于Buefy表中的特定单元格?

如何将CSS应用于Vuejs中的劣等类

如何将CSS类应用于ng-repeat中的选定行

如何将CSS类应用于AngularDart中的另一个组件?

如何将更改应用于jQuery中的当前类?

WPF如何将DataTrigger应用于XAML中的“自定义用户控件”类

如何将多个类应用于jQuery中的多个Div