oro*_*ome 6 python constructor keyword-argument python-2.7
我想为派生类添加关键字参数,但无法弄清楚如何去做.尝试显而易见的
class ClassA(some.package.Class):
def __init__(self, *args, **kwargs):
super(ClassA, self).__init__(*args, **kwargs)
class ClassB(ClassA):
def __init__(self, *args, a='A', b='B', c='C', **kwargs):
super(ClassB, self).__init__(*args, **kwargs)
self.a=a
self.b=b
self.c=c
Run Code Online (Sandbox Code Playgroud)
失败了,因为我不能列出这样的参数ClassB的__init__.和
class ClassB(ClassA):
def __init__(self, *args, **kwargs):
super(ClassA, self).__init__(*args, **kwargs)
self.a=a
self.b=b
self.c=c
Run Code Online (Sandbox Code Playgroud)
当然不起作用,因为没有指定新的关键字.
如何__init__为派生类添加关键字参数?
尝试这样做:
class ClassA(object):
def __init__(self, *args, **kwargs):
pass
class ClassB(ClassA):
def __init__(self, *args, **kwargs):
self.a = kwargs.pop('a', 'A')
self.b = kwargs.pop('b', 'B')
self.c = kwargs.pop('c', 'C')
super(ClassB, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
有效地将关键字参数a,b和c添加到ClassB,同时将其他关键字参数传递给ClassA.