Jestem zdziwiony. Próbuję utworzyć podklasę, która nie dba o żadne parametry słowa kluczowego - po prostu przekazuje je wszystkie tak, jak jest do klasy nadrzędnej, i jawnie ustawia jeden parametr wymagany dla konstruktora. Oto uproszczona wersja mojego kodu:Nieoczekiwany argument słowa kluczowego podczas używania ** kwargs w konstruktorze
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!?!??
nie ten z
[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'
Jak może narzekać nieoczekiwane słowa kluczowego argumentu gdy metoda ma **kwargs
?
(Python 2.7.3 Ubuntu)
uhh w prawo. dzięki./ja ucieka i chowa się – Leopd