Sono sconcertato. Sto cercando di creare una sottoclasse a cui non interessa i parametri delle parole chiave, ma li passa tutti insieme alla superclasse e imposta esplicitamente l'unico parametro richiesto per il costruttore. Ecco una versione semplificata del mio codice:Argomento di parole imprevisto quando si utilizza ** kwargs nel costruttore
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!?!??
Questo viene a mancare con
[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'
Come può lamentarsi di un argomento chiave inaspettata quando il metodo ha **kwargs
?
(Python 2.7.3 su Ubuntu)
uhh giusto. Grazie./io scappa e mi nascondo – Leopd