我可以从父构造函数获取公共参数吗?
问题描述:
我想知道是否可以使用父构造函数来传递每个子类所需的参数。因此,例如:我可以从父构造函数获取公共参数吗?
Class A():
def __init__(a,b):
...do some stuff...
Class B(A):
def __init__(c,d):
...do some stuff needing a and b...
Class C(A):
def __init__(e,f,g):
...do some stuff needing a and b...
基本上有一些参数我的每个子类都想要和其他一些人是特定。我不想在a的每个子类的定义中添加a,b。有什么方法可以在python中执行此操作?
我想看到的是调用的能力:
b=B(a=1,b=2,c=3,d=4)
,而不必包含A和B在子类中定义。
非常感谢!
答
# Python 3, but the idea is the same in 2
class A:
def __init__(self, a, b):
# ...
class B(A):
def __init__(self, c, d, *args, **kwargs):
super().__init__(*args, **kwargs)
class C(A):
def __init__(self, e, f, g, *args, **kwargs):
super().__init__(*args, **kwargs)