python 之简单浅谈新式类和旧式类(或称经典类)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 之简单浅谈新式类和旧式类(或称经典类)相关的知识,希望对你有一定的参考价值。

#_*_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算法来遍历父类
‘‘‘


本文出自 “FA&IT运维-Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1874428

以上是关于python 之简单浅谈新式类和旧式类(或称经典类)的主要内容,如果未能解决你的问题,请参考以下文章

关于 python 新式类和旧式类继承顺序的验证

旧式类、新式类和元类

python之新式类和经典类

python之继承抽象类新式类和经典类

python中新式类和经典类

面向对象新式类和旧式类的区别