首页 / 知识
python新式类和旧式类区别
2023-11-12 13:00:00
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。
为什么要在2.2中引进newstyleclass呢?官方给的解释是:
为了统一类(class)和类型(type)。
在2.2之前,比如2.1版本中,类和类型是不同的,如a是ClassA的一个实例,那么a.__class__返回‘class__main__.ClassA‘,type(a)返回总是。而引入新类后,比如ClassB是个新类,b是ClassB的实例,b.__class__和type(b)都是返回‘class'__main__.ClassB',这样就统一了。
引入新类后,还有其他的好处,比如更多的内置属性将会引入,描述符的引入,属性可以来计算等等。
为了向前兼容,默认情况下用户定义的类为经典类,新类需要继承自所有类的基类object或者继承自object的新类。
值得注意的地方是,虽然使用的是最新的python(2.7),但是一些特性不会在旧式类起作用。
所以,为了确保自己使用的是新式类,有两种以下方法:
1.元类,在类模块代码的最前面加入如下代码__metaclass__=classname(自定义的某个新式类)。
2.类都从内建类object直接或者间接地继承。
如果不需要兼容旧式类,旧版本的类,那么就保持都是新式类。
在Python3里面,不存在这些问题了,因为所有的类都是object类的子类(隐式)。
代码示例:
classoldClass:#经典类
def__init__(self):
pass
classnewClass(object):#新类
def__init__(self):
pass
c1=oldClass()
c2=newClass()
c1.__class__#输出->
type(c1)#输出->
c2.__class__#输出->
type(c2)#输出->
以上内容为大家介绍了python培训之新式类和旧式类区别,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python如何查看对象属性
python如何查看对象属性,培训,网络,系统,函数,对象,属性,变量,示例,实例,模块,在Python语言中,有些库在使用时,在网络上找到的文档不全,这就需要python类、模块、包的概念及区别
python类、模块、包的概念及区别,概念,数据,培训,模块,名字,环境,基础,文件,函数,定义,类类的概念在许多语言中出现,是面向对象编程的基础,很容python怎么给代码注释
python怎么给代码注释,代码,培训,注释,时间,项目,负担,冗余,重要性,开头,含义,注释的重要性如果我们是做独立项目,或者是唯一一位来查看自己编python_和__的用途和区别
python_和__的用途和区别,私有化,代码,技术,培训,方法,情况,管理,名称,人员,属性,在看一些Python开源代码时,经常会看到以下划线或者双下划线python详解python中单引号,双引号,多
python详解python中单引号,双引号,多引号区别,培训,字符串,表示,区别,引号,注释,详解,下面,原因,字符,先说1双引号与3个双引号的区别,python双引python调用函数和打印函数的区别
python调用函数和打印函数的区别,培训,函数,区别,变量,实例,分配,以上,参数,东西,更多,python调用函数和打印函数的区别1、当你调用一个返回python包和文件夹有什么区别
python包和文件夹有什么区别,培训,单位,公共,文件夹,显卡,模块,大小,字节,剩余,实例,python包和文件夹有什么区别1、一个或多个文件夹组成一python99乘法表代码
python99乘法表代码,代码,基础,培训,空格,字符串,结果,初学者,实例,后面,以上,python99乘法表代码1、说明字符串之间才能相加,所以输出结果的pythoncopy()和直接赋值的区别
pythoncopy()和直接赋值的区别,培训,赋值,元素,区别,风云,老店,枭雄,副本,乱世,变量,pythoncopy()和直接赋值的区别区别说明1、使用“=”直接python美元转换成人民币转换代码
python美元转换成人民币转换代码,人民币,美元,代码,货币,培训,表示,小数点,空格,数值,符号,python美元转换成人民币转换代码1、说明程序可以python实例创建销毁的函数整理
python实例创建销毁的函数整理,培训,实例,对象,方法,函数,之前,垃圾,初始化,类别,以上,python实例创建销毁的函数整理说明1、_new_在对象实例