में ** kwargs का उपयोग करते समय अप्रत्याशित कीवर्ड तर्क I'm baffled। मैं एक उप-वर्ग बनाने की कोशिश कर रहा हूं जो किसी भी कीवर्ड पैरामीटर की परवाह नहीं करता है - बस सुपरक्लास के साथ ही उन्हें पास करता है, और स्पष्ट रूप से कन्स्ट्रक्टर के लिए आवश्यक एक पैरामीटर सेट करता है।कन्स्ट्रक्टर
[email protected]$ python minimal.py
Traceback (most recent call last):
File "minimal.py", line 9, in <module>
a = SubClass(optional='foo')
TypeError: SubClass() got an unexpected keyword argument 'optional'
साथ
class BaseClass(object):
def __init__(self, required, optional=None):
pass
def SubClass(BaseClass):
def __init__(self, **kwargs):
super(SubClass, self).__init__(None, **kwargs)
a = SubClass(optional='foo') # this throws TypeError!?!??
यह विफल रहता है यह कैसे एक अप्रत्याशित कीवर्ड तर्क जब विधि **kwargs
है के बारे में शिकायत कर सकते हैं: यहाँ मेरी कोड का एक सरलीकृत संस्करण है?
(Ubuntu पर अजगर 2.7.3)
ओह ठीक है। धन्यवाद।/मैं भाग जाता है और छुपाता है – Leopd