Python的继承 - 多个超类
这是一种pythonic的方式来创建一个继承超过10个类的类?或者,也许我应该考虑一种不同的方法?Python的继承 - 多个超类
回答:
这是允许的,你也可以考虑创建一个组合对象,这个组合对象包含其他对象,因为它是成员,而不是继承它们。
维基组成的概念:composition
多重继承在Python:multiple inheritance
这些应该可以帮助你了解,然后再决定什么是你的程序的情况下对你更好。
回答:
多继承在Python中有效,但不经常使用。我看到的大部分使用案例是mixins(小片段混入主要的多层树)。
创建一个包含10个父母的班级,在任何OOP语言中都是难闻的气味,而且根本不是pythonic。你应该将你的课程重构为另一种抽象。
回答:
是的,从多个类继承完全合法。但是,如果你有10个超类,看起来你可能需要调整你的继承树。也许有些类可以被中间类继承,以便最终的类从更少的类继承。
您还应该了解可能为您正在尝试做什么提供更清洁解决方案的组合。
回答:
从Python中的许多类(超过10个)继承是否可以继承?
这是“OK”,因为Python会接受它并且不会崩溃或崩溃。
这是创建类的pythonic方式还是我应该考虑一种不同的方法?
这当然不是创建班级的“pythonic”方式。拥有许多父类只会加重有几个父类(diamond problem等)的众所周知的问题,再加上它使得类直接依赖于其他许多类,并且使得很难找出类中每个行为的来源从。这违背了Python简洁的一般精神(或一般的良好编程习惯)。
请注意,让另一个类的子类创建一个“是”的关系。你的班级真的是十件事情吗?还是你只是继承获得一些已经实施的行为?查找面向对象设计的一些基本原则,例如SOLID,为什么有时我们可能更喜欢composition over inheritance,以及替代架构模式,如entity–component–system。
以上是 Python的继承 - 多个超类 的全部内容, 来源链接: utcz.com/qa/264038.html