我试图将基于变量的几个类合并到一个主类中。请参阅下面的代码,让我知道是否有更有效或正确的方法来执行这些操作。提前致谢
概念: 我有一个主要类,有几个方法。然后我有2-5个扩展主类的子类。但是,如果我不使用这些方法,那么我不会继承这些方法或属性,我只会根据我的需要继承。 DriverFactory然后由适当的类className(DriverFactory)和super(className,self)使用它的类继承。 init (* args)
class DriverFactory(object):
def __init__(self, *args):
if "value1" in args:
cls1 = classOne()
self.inheritor(cls1)
if "value2" in args:
cls2 = classTwo()
self.inheritor(cls2)
if len(args) == 0:
default = defaultCls()
self.inheritor(default)
def inheritor(self, obj):
for i in obj.__dict__:
self.__dict__[i] = obj.__dict__[i]
methods = inspect.getmembers(obj, predicate=inspect.ismethod)
for i in range(1, len(methods)):
method_obj = methods[i]
setattr(self, method_obj[0], method_obj[1])