Я озадачен. Я пытаюсь сделать подкласс, который не заботится о каких-либо параметрах ключевого слова - просто передает их все вместе, как и суперкласс, и явно задает один параметр, необходимый для конструктора. Вот упрощенная версия моего кода:
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!?!??
Это не работает с
[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'
Как он может жаловаться на неожиданный аргумент ключевого слова, когда метод имеет **kwargs
?
(Python 2.7.3 на Ubuntu)