pyhon类继承

时间:2023-03-09 16:38:38
pyhon类继承

1,python类的继承

class A(object):
name ='eason'
age = '22'
def __init__(self):
print '我是A的构造函数!!!'
def getname(self):
return self.name
def getage(self):
return self.age class B(object):
name = 'linsir'
age='30'
def __init__(self):
print '我是B的构造函数!!!'
def getname(self):
return self.name
def getage(self):
return self.age class C(A,B):
def __init__(self):
print '我是我自己的构造函数'
#调用父类的构造函数
super(C,self).__init__()
name = 'testsir'
age = '25' person1 = C()
print person1.getname()
print person1.getage() 运行结果:
我是我自己的构造函数
我是A的构造函数!!!
testsir
25

 

子类如果没有构造函数,默认会使用父类的构造函数,如果继承多个父类,看哪个父类写在前面就调用哪个父类的构造。

C继承了A和B ,所以A和B为C的父类或者说是基类。

A和B为C的子类,或者说是AB的派生类。
调用父类的第一个方法:可以用super函数。super(son,self).__init__()
调用父类的第二个方法:父类.方法名(self),不建议使用,因为如果有多个调用父类的方法的代码,如果类的名称一旦发生变化,则意味这后面调用父类的方法的代码都得变。
2,python方法重写
class father(object):
def __init__(self):
self.name = 'tom'
print 'father' def func(self):
print 'father.func' def bad(self):
print 'father抽烟喝酒 ' class son(father):
def __init__(self):
super(son,self).__init__()
print 'son' def sonc(self):
print 'son.sonc' #重写bad函数,不在使用父类的函数。如果想调用父类的函数,可以用super执行父类的方法。
def bad(self):
#调用
# super(son, self).bad()
# father.bad(self)
print 'son赌博'
son1 = son()
son1.sonc()
son1.bad() 运行结果:
father
son
son.sonc
son赌博

  

son1 = son()实例化一个对象出来,调用bad方法,由于子类已经有bad方法,故无需重父类调用,即达到父类方法的重写功能。