gpt4 book ai didi

python - 如何在 Python 的 mixin 中调用封闭类的 super?

转载 作者:太空狗 更新时间:2023-10-29 18:20:54 24 4
gpt4 key购买 nike

我在 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,而不用在 Parent 中公开保存的行为。所以当我保存时,我想做 C、B 和 A。我读过 Calling the setter of a super class in a mixin但是我不明白,并且阅读了 super 文档后它似乎没有回答我的问题。

问题是,我应该在 mixin 中放入什么来确保它执行 B 操作并且不会阻止 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

关于python - 如何在 Python 的 mixin 中调用封闭类的 super?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39395618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com