कक्षा के सुपरक्लास की विधि प्राप्त करने के लिए मैं super
का उपयोग क्यों नहीं कर सकता?पायथन: मैं कक्षा में 'सुपर' का उपयोग क्यों नहीं कर सकता?
उदाहरण:
Python 3.1.3
>>> class A(object):
... def my_method(self): pass
>>> class B(A):
... def my_method(self): pass
>>> super(B).my_method
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
super(B).my_method
AttributeError: 'super' object has no attribute 'my_method'
(बेशक यह एक तुच्छ मामले में जहां मैं सिर्फ A.my_method
कर सकता है, लेकिन मैं हीरे की विरासत का एक मामले के लिए इस की जरूरत है।)
super
के अनुसार प्रलेखन, ऐसा लगता है कि मैं क्या संभव होना चाहिए। यह 'super
रों प्रलेखन है: (जोर मेरा)
super()
-> एक ही रूप मेंsuper(__class__, <first argument>)
super(type)
-> अनबाउंड सुपर वस्तु
super(type, obj)
-> बाध्यsuper
वस्तु;isinstance(obj, type)
सुपर (प्रकार, टाइप 2) -> बाध्य सुपर ऑब्जेक्ट की आवश्यकता है; आवश्यकता है issubclass (type2, प्रकार)
[गैर-प्रासंगिक उदाहरण संशोधित]
मैं अपने उत्तर हटा दिया गया - मैं एक ही त्रुटि मिली। बहुत अजीब, इसमें थोड़ा और देखेंगे। –