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算法来遍历父类
‘‘‘
时间: 2024-10-11 12:35:35

python 之简单浅谈新式类和旧式类(或称经典类)的相关文章

浅谈双线程dp (nyoj61 nyoj712)经典【传字条】和【探 寻 宝 藏】

浅谈双线程dp 先看问题: 传纸条(一) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们可以通过传纸条来进行交流.纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n).从小渊传到小轩的纸条只可以向下或者向右传递,从小轩

python simplejson模块浅谈

一.背景知识 JSON: 引用百科描述如下,具体请自行搜索相关介绍: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON成为理想的数据交

Python进阶之浅谈内置方法

目录 有序or无序和可变or不可变 数字类型内置方法 整形 浮点型 字符串类型内置方法 有序or无序和可变or不可变 有序:有索引 无序:无索引 可变:变量值变,id不变 不可变:变量值变,id也变 数字类型内置方法 整形 1.作用 描述年龄,id,身高 2.定义方式 x=10 x=int('10') 3.内置方法 没有内置方法,只有算术运算和比较运算 4.存在一个值还是多个值 一个值 5.有序or无序 整形没有这一说法 6.可变or不可变 整形是不可变的 浮点型 1.作用 描述薪资等 2.定义

浅谈爬虫 《一》 ===python

浅谈爬虫 <一> ===python ?''正文之前先啰嗦一下,准确来说,在下还只是一个刚入门IT世界的菜鸟,工作近两年了,之前做前端的时候就想写博客来着,现在都转做python了,如果还不开始写点什么,估计时间都不会原谅这么懒散的我了-- 闲话到此,下面说正事儿--首先来个爬虫简介 ??咋一听挺神秘的样子,简单来讲爬虫就是从网络获取资源,比如你想知道淘宝上的女装什么颜色的销量好,或者哪一款零食比较有赚头儿-- ??在说现在流行的人工智能,其实所谓的人工智能也就是足够的数据支撑,以及数据标记等

【python】-- 类的继承(新式类/经典类)、多态

继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类",继承的过程,就是从一般到

python中新式类和经典类

python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Python 3.x中默认都是新式类,不必显式的继承object 2.经典类继承深度优先,新式类继承广度优先. 在多重继承关系下,子类的实例对象想要调用父类的方法,向上寻找时的顺序. 3.新式类相同父类只执行一次构造函数,经典类重复执行多次. class A: def __init__(self): pri

Python新式类与经典类的区别

1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性:反之,即不由任意内置类型派生出的类,则称之为“经典类”. “新式类”和“经典类”的区分在Python 3之后就已经不存在,在Python 3.x之后的版本,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),即所有的类都是“新式类”. 官方文档 https://www.python.org/doc/new

Python自学之乐-python 2、python 3中经典类、新式类的深度和广度优先小结

#Author:clarkclass Original(object):#在python 3 中写上object的新式类和不写的经典类遵循的都是广度优先原则 def __init__(self): print("in Original")class Second(Original): pass # def __init__(self): # print("in the second")class Third(Original): def __init__(self)

python中的__new__与__init__,新式类和经典类(2.x)

在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1. 新式类对象可以直接通过__class__属性获取自身类型:type 2. 继承搜索的顺序发生了改变,经典类多继承时属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧(即深度优先搜索);新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动 例子: 经典类: 搜索顺序是(D,B,A,C)>>&