我有两个类,它们扩展了两个不同的基类。这些类设置自定义环境
这两个类中共有三种方法:prepare()
、setup()
和teardown()
。
每个方法都重写基类方法。(它们还有super()
调用。)还有ExtendedBase
扩展Base
头等舱:
ClassA(Base):
def __init__(self, args):
super().__init__(args)
self._private = OtherClass()
def prepare(self, args):
super().prepare(args)
self._private.prepare()
def setup(self, args):
super().setup(args)
self._private.setup(self._smth, args)
def teardown(self):
self._private.teardown()
super().teardown()
二等舱:
ClassB(ExtendedBase):
def __init__(self, args):
super().__init__(args)
self._private = OtherClass()
def prepare(self, args):
super().prepare(args)
self._private.prepare()
def setup(self, args):
super().setup(args)
self._private.setup(self._smth, args)
def teardown(self):
self._private.teardown()
super().teardown()
这是避免重复方法的一种方法吗?
我曾考虑过使用Environment
类进行多重继承,该类将包含重复的方法,但对于如何实现以及这是否是一个好主意,我感到困惑
编辑:不幸的是,我无法对类层次结构执行任何操作ClassA
和ClassB
应该继承相应的类并重写或使用父类的方法
这看起来很像使用类mixin的典型案例:
为了便于说明,这里有一组伪类,它们遵循您的示例并使用mixin。从你的问题来看,不清楚
OtherClass
应该是什么,但它似乎也有prepare
、teardown
和setup
方法:相关问题 更多 >
编程相关推荐