无话可说,继承主要是一些父类继承,代码是非常具体的
#!/usr/bin/env python #coding:utf-8 class Father(object):#新式类 def __init__(self): self.name='Liu' self.FamilyName='Yan' def Lee(self): print '我是父类函数Lee' def Allen(self): print "我是父类函数Allen" class Son(Father): def __init__(self): #Father.__init__(self) #经典类运行父类构造函数 super(Son,self).__init__() #新式类运行父类构造函数 self.name='Feng' def Aswill(self): #子类新增函数 print 'Son.Bar' def Lee(self):#重写父类函数Lee print '子类重写了父类函数Lee' s1=Son() print "继承了父类的姓"+ s1.FamilyName print "重写了父类的名字",s1.name s1.Lee() #子类重写了父类函数Lee s1.Allen() #子类继承了父类函数Allen
继承多个类时的顺序,经典类继承是深度优先,是一个BUG, 新式类是广度优先,应该是用新式类去定义类
新式类
class A(object): #新式类的写法 def __init__(self): print 'This is from A' def test(self): print 'This is test from A' class B(A): def __init__(self): print "This is from B" class C(A): def __init__(self): print "This is from C" def test(self): print "This is test from C" class D(B,C): def __init__(self): print 'this is D' T1=D() T1.test()
经典类
class A: def __init__(self): print 'This is from A' def test(self): print 'This is test from A' class B(A): def __init__(self): print "This is from B" class C(A): def __init__(self): print "This is from C" def test(self): print "This is test from C" class D(B,C): def __init__(self): print 'this is D' T1=D() T1.test()
版权声明:本文博客原创文章,博客,未经同意,不得转载。