पायथन में एक से अधिक आधार वर्गों से एक वर्ग प्राप्त किया जा सकता है। इसे एकाधिक वंशानुक्रम कहा जाता है।
मल्टीपल इनहेरिटेंस में, सभी बेस क्लास की विशेषताएं व्युत्पन्न क्लास में इनहेरिट की जाती हैं। एकाधिक वंशानुक्रम के लिए वाक्य रचना एकल वंशानुक्रम के समान है।
class Super1: pass class Super2: pass class MultiDerived(Super1, Super2): pass
एकाधिक वंशानुक्रम परिदृश्य में, किसी भी निर्दिष्ट विशेषता को पहले वर्तमान वर्ग में खोजा जाता है। यदि नहीं मिला, तो एक ही कक्षा को दो बार खोजे बिना पैरेंट कक्षाओं में गहराई-पहले, बाएँ-दाएँ फ़ैशन में खोज जारी है।
तो, MultiDerived वर्ग के उपरोक्त उदाहरण में खोज क्रम [MultiDerived, Super1, Super2, object] है। इस ऑर्डर को मल्टीडिराइव्ड क्लास का रेखीयकरण भी कहा जाता है और इस ऑर्डर को खोजने के लिए इस्तेमाल किए गए नियमों के सेट को मेथड रेजोल्यूशन ऑर्डर (एमआरओ) कहा जाता है।
एमआरओ यह सुनिश्चित करता है कि एक क्लास हमेशा अपने माता-पिता के सामने आए और कई माता-पिता के मामले में, ऑर्डर बेस क्लास के टपल के समान हो।
किसी वर्ग के MRO को __mro__ विशेषता या mro() विधि के रूप में देखा जा सकता है। पूर्व एक टपल देता है जबकि बाद वाला एक सूची देता है।
>>> MultiDerived.mro() [<class '__main__.MultiDerived'>, <class '__main__.Super1'>, <class '__main__.Super2'>, <class 'object'>]