python 之简单浅谈新式类和旧式类(或称经典类)
高洛峰2016-11-19 09:30:30364 #_*_coding:utf-8 _*_
#知识点:经典类和新式类的区别
#父类
class Father(object):
def __init__(self):
self.Fname = 'fffffff'
print 'father.__init__'
def Func(self):
print 'funcfurnc'
def Bar(self):
print 'barbarbar'
def Test(self): #再定义一个方法
print '11111'
print 'testtest'
#子类继承父类,也就是说Son类可以拿到Father类的方法
class Son(Father):
def __init__(self):
self.Sname = 'sonsonson'
print 'son.__init__'
Father.__init__(self) #调用父类的构造函数,这是第一种形式,这种方式可以不用继承object
super(Son, self).__init__() #调用父类的构造函数,这是第二种形式,必须继承object
def Yes(self):
print 'barbarbar'
def Test(self):
print 'aaaaaaaa' #重写父类的Test方法
#实例化子类,尝试访问在父类的方法
s1 = Son() #实例化子类
s1.Bar() #成功访问父类的方法
s1.Test() #访问重写后的方法
'''
其他说明:
如果继承了object 那么就是新式类, 推荐使用新式类
如果没有继承object 那么就是经典类
区别:
经典类,在多继承时采用深度优先遍历父类
新式类,在多继承时采用一种新的C3算法来遍历父类
'''