这是一种pythonic的方式来创建一个继承超过10个类的类?或者,也许我应该考虑一种不同的方法?Python的继承 - 多个超类
0
A
回答
5
这是允许的,你也可以考虑创建一个组合对象,这个组合对象包含其他对象,因为它是成员,而不是继承它们。
维基组成的概念:composition
多重继承在Python:multiple inheritance
这些应该可以帮助你了解,然后再决定什么是你的程序的情况下对你更好。
1
多继承在Python中有效,但不经常使用。我看到的大部分使用案例是mixins(小片段混入主要的多层树)。
创建一个包含10个父母的班级,在任何OOP语言中都是难闻的气味,而且根本不是pythonic。你应该将你的课程重构为另一种抽象。
2
是的,从多个类继承完全合法。但是,如果你有10个超类,看起来你可能需要调整你的继承树。也许有些类可以被中间类继承,以便最终的类从更少的类继承。
您还应该了解可能为您正在尝试做什么提供更清洁解决方案的组合。
0
从Python中的许多类(超过10个)继承是否可以继承?
这是“OK”,因为Python会接受它并且不会崩溃或崩溃。
这是创建类的pythonic方式还是我应该考虑一种不同的方法?
这当然不是创建班级的“pythonic”方式。拥有许多父类只会加重有几个父类(diamond problem等)的众所周知的问题,再加上它使得类直接依赖于其他许多类,并且使得很难找出类中每个行为的来源从。这违背了Python简洁的一般精神(或一般的良好编程习惯)。
请注意,让另一个类的子类创建一个“是”的关系。你的班级真的是十件事情吗?还是你只是继承获得一些已经实施的行为?查找面向对象设计的一些基本原则,例如SOLID,为什么有时我们可能更喜欢composition over inheritance,以及替代架构模式,如entity–component–system。
相关问题
- 1. python多继承超级函数
- 2. Python类继承
- 3. Python:类继承
- 4. 多类继承?
- 5. 多类继承
- 6. Ruby中的多重继承...继承自多个控制器类。
- 7. React从超类继承html
- 8. 我该如何从多个超类继承自定义类?
- 9. Python类继承MonkeyDevice
- 10. python __str__继承类
- 11. Python类继承,attributeError
- 12. Python类继承__init__
- 13. 标记从超类继承的类mongoengine
- 14. PHP多类继承
- 15. Python的多重继承
- 16. Python 2类的继承
- 17. VBA继承,超
- 18. Python的 - 继承
- 19. 多种类型的继承
- 20. 多重继承的分类?
- 21. 模板类的多继承
- 22. 模板类的多继承
- 23. 继承 - UIAlertView在超类和子类
- 24. 多重继承中无用的超级?
- 25. 从android中的超类继承数据
- 26. PHP的继承超类变量
- 27. Python动态多继承
- 28. Python多重继承:哪个__new__调用?
- 29. python类继承def __init位?
- 30. python类互相继承
通常最好避免多继承。 10听起来过度。考虑遏制(即对这10个类中的一些实例化的成员)。 –