加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在Python中的mixin中调用封闭类的超级?

发布时间:2020-12-16 23:30:03 所属栏目:Python 来源:网络整理
导读:我在Django中有以下代码: class Parent(models.Model): def save(self): # Do Stuff Aclass Mixin(object): def save(self): # Do Stuff Bclass A(Parent,Mixin): def save(self): super(A,self).save() # Do stuff C 现在,我想使用mixin而不在父级中剔除保
我在Django中有以下代码:
class Parent(models.Model):
    def save(self):
        # Do Stuff A

class Mixin(object):
    def save(self):
        # Do Stuff B

class A(Parent,Mixin):
    def save(self):
        super(A,self).save()
        # Do stuff C

现在,我想使用mixin而不在父级中剔除保存的行为.因此,当我保存时,我想要做C,B和A的东西.我读过Calling the setter of a super class in a mixin然而我没有得到它并且阅读了超级文档它似乎没有回答我的问题.

问题是,我应该在mixin中加入什么来确保它能够完成B并且不会阻止Stuff A发生?

解决方法

如何在你的mixin课程中调用super?
class Parent(object):
    def test(self):
        print("parent")


class MyMixin(object):
    def test(self):
        super(MyMixin,self).test()
        print("mixin")


class MyClass(MyMixin,Parent):
    def test(self):
        super(MyClass,self).test()
        print("self")

if __name__ == "__main__":
    my_obj = MyClass()
    my_obj.test()

这将为您提供输出:

$python test.py
parent
mixin
self

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读