Inheritance 如何在Python中编程可选的多重继承

Inheritance 如何在Python中编程可选的多重继承,inheritance,python-2.7,multiple-inheritance,pycharm,Inheritance,Python 2.7,Multiple Inheritance,Pycharm,如何用两个类实现多重继承。一节课是选修课 我用过一个装饰师: def optional_inherit(cls): if _config.GDRIVE_HOOK: from jinjacms2 import drivecms class cls(cls, drivecms.CmsDrive): pass re

如何用两个类实现多重继承。一节课是选修课

我用过一个装饰师:

def optional_inherit(cls):                                                         

    if _config.GDRIVE_HOOK:
        from jinjacms2 import drivecms

        class cls(cls, drivecms.CmsDrive):
            pass
    return cls

@optional_inherit
class JinjaCMS(cmsbase.CmsHandler):

    def get(self):
        ...
但是呢?还有别的办法吗? 装饰器报告中的类名“cls”:cls不是允许的PEP-8类名

我从以下方面获得灵感:

在Python中,类层次结构是从右到左定义的

def jinjacms_get(self):         # member function for JinjaCMS class
    ....

if config.GDRIVE_HOOK:          #optional multiple inheritance
    from jinjacms import drivecms
    JinjaCMS = type(str('JinjaCMS'), (drivecms.CmsDrive, cmsbase.CmsHandler), {'get': jinjacms_get})
else:
    JinjaCMS = type(str('JinjaCMS'), (cmsbase.CmsHandler, ), {'get': jinjacms_get})