python中子类对父类初始化变量的赋值 50
比如,我有两个类,B继承A类,都声明了构造函数classA:def__init__(self,aa,ab):classB(A):def__init__(self,??):...
比如,我有两个类,B继承A类,都声明了构造函数
class A: def __init__(self,aa,ab): class B(A): def __init__(self,??):那么,我在A类中改怎么添加参数呢?是先写父类的初始化参数还是不写?
还有,在B类的构造函数中,是直接调用A类构造函数,或者Supre(B,self)函数来初始化呢,还是要下面这样来初始化,比如
self.x = x
self.y =y
这样的方式?
谢谢大家了,看了些资料,翻了些书,要么说的模模糊糊,要么一笔带过 展开
class A: def __init__(self,aa,ab): class B(A): def __init__(self,??):那么,我在A类中改怎么添加参数呢?是先写父类的初始化参数还是不写?
还有,在B类的构造函数中,是直接调用A类构造函数,或者Supre(B,self)函数来初始化呢,还是要下面这样来初始化,比如
self.x = x
self.y =y
这样的方式?
谢谢大家了,看了些资料,翻了些书,要么说的模模糊糊,要么一笔带过 展开
4个回答
展开全部
1、使用self.x = x这样来添加变量
2、对于父类的初始化参数,如果不写,默认就使用父类无参的__init__方法
3、子类初始化父类参数B.__init__(self,aa,ab)
4、使用super(子类类型,子类对象).foo()调用父类方法
2、对于父类的初始化参数,如果不写,默认就使用父类无参的__init__方法
3、子类初始化父类参数B.__init__(self,aa,ab)
4、使用super(子类类型,子类对象).foo()调用父类方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'''
desc:当子类重写了__init__方法,仍然需要调用父类的构造方法,就需要super(子类,self).__init__(参数),子类初始化父类的属性
'''
class Father(object):
def __init__(self, wife):
self.name = '父类属性'
self.wife = wife
class Son(Father):
def __init__(self,wif):
Father.__init__(self,wife=wif)
self.address = "湖北"
som = Son('dwdw')
print(som.wife)
desc:当子类重写了__init__方法,仍然需要调用父类的构造方法,就需要super(子类,self).__init__(参数),子类初始化父类的属性
'''
class Father(object):
def __init__(self, wife):
self.name = '父类属性'
self.wife = wife
class Son(Father):
def __init__(self,wif):
Father.__init__(self,wife=wif)
self.address = "湖北"
som = Son('dwdw')
print(som.wife)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码:
class A:
def __init__(self,aa,bb):
print('class A',aa,bb)
class B(A):
def __init__(self,aa,bb):
super().__init__(aa,bb)
print('class B',aa,bb)
b=B(11,22)
super(B,b).__init__(3,4)
结果:
class A 11 22
class B 11 22
class A 3 4
知道了吧?如果不清楚,最好就是自己写个简单的demo测试下
class A:
def __init__(self,aa,bb):
print('class A',aa,bb)
class B(A):
def __init__(self,aa,bb):
super().__init__(aa,bb)
print('class B',aa,bb)
b=B(11,22)
super(B,b).__init__(3,4)
结果:
class A 11 22
class B 11 22
class A 3 4
知道了吧?如果不清楚,最好就是自己写个简单的demo测试下
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询