我很困惑.我正在尝试创建一个不关心任何关键字参数的子类 - 只是将它们一直传递给超类,并显式设置构造函数所需的一个参数.这是我的代码的简化版本:
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!?!??
Run Code Online (Sandbox Code Playgroud)
这失败了
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'
Run Code Online (Sandbox Code Playgroud)
当方法有时,它如何抱怨意外的关键字参数**kwargs?
(Ubuntu上的Python 2.7.3)
Ry-*_*Ry- 19
def SubClass(BaseClass):
Run Code Online (Sandbox Code Playgroud)
是一个功能,而不是一个类.没有错误,因为BaseClass可能是参数名称,并且允许嵌套函数.语法很有趣,不是吗?
class SubClass(BaseClass):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4708 次 |
| 最近记录: |