2012-03-08 98 views
0

我想知道是否可以使用父构造函数来传递每个子类所需的参数。因此,例如:我可以从父构造函数获取公共参数吗?

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在子类中定义。

非常感谢!

回答

3
# 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) 
相关问题