返回python ......登陆

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算法来遍历父类
'''


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送