Python डॉक्यूमेंटेशन के अनुसार, 'super' इनहेरिटेंस में मल्टीपल Python क्लास को एक्सटेंड करने में मदद कर सकता है। यह एक प्रॉक्सी ऑब्जेक्ट लौटाता है जो पैरेंट या सिबलिंग क्लास को मेथड कॉल डेलीगेट करता है। यह उन इनहेरिटेड मेथड्स को एक्सेस करने के लिए उपयोगी है जिन्हें क्लास में ओवरराइड किया गया है। खोज क्रम वही है जो getattr() द्वारा उपयोग किया जाता है, सिवाय इसके कि टाइप खुद को स्किप करता है।
दूसरे शब्दों में, super को कॉल करने पर एक नकली ऑब्जेक्ट मिलता है जो एट्रिब्यूट लुकअप को इनहेरिटेंस चेन में ऊपर की क्लासेस को डेलीगेट करता है। ध्यान देने योग्य बिंदु:
- यह पुराने स्टाइल की क्लासेस के साथ काम नहीं करता।
- Python 2.x में आपको super में अपनी क्लास और इंस्टेंस पास करने की आवश्यकता होती है। यह आवश्यकता Python 3.x में हटा दी गई थी।
- यह मल्टीपल इनहेरिटेंस को सही ढंग से संभालता है। एक मेथड रिजॉल्यूशन ऑर्डर जनरेट होता है और लुकअप इसी क्रम में पैरेंट क्लासेस से गुजरते हैं।