我很困惑。我正在尝试创建一个不关心任何关键字参数的子类——只需将它们一直传递给超类,并显式设置构造函数所需的一个参数。这是我的代码的简化版本:
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!?!??
这失败了
leo@loki$ 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
?
(Ubuntu 上的 Python 2.7.3)