python3 新式类_python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。
为什么要在2.2中引进new style class呢?官方给的解释是:
为了统一类(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类的子类(隐式)。
代码示例:class oldClass: #经典类
def __init__( self ):
pass
class newClass(object): #新类
def __init__( self ):
pass
c1 = oldClass()
c2 = newClass()
c1.__class__ #输出-> type(c1) # 输出-> c2.__class__ # 输出->type(c2) # 输出->本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
python3 新式类_python新式类和旧式类区别相关推荐
- python3新式类_python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...
- python 新式类和旧式类_python新式类和旧式类区别
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类. 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type) ...
- python经典类新式类_Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...
- python 新式类 旧式类_Python新式类与经典类(旧式类)的区别
Python中类分两种:旧式类和新式类: ➤新式类都从object继承,经典类不需要. ➤新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而 ...
- python新式类好还是经典类_python新式类和经典类的区别?
python新式类和经典类的区别? 1)首先,写法不一样: class A: pass class B(object): pass 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. ...
- python语言用什么关键字来声明一个类_python使用什么关键字定义类
什么是类? 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下:class ...
- python如何设计工具类_Python基础之自定义工具类
class ListHelper: @staticmethod def find_all(target, func_condition): """ 查找列表中满足条件的所 ...
- python如何实例化类_Python如何根据类名实例化类
个人认为比较好的一种方法: # 假设当前目录中有个名为losses.py的模块,我们要调用其中的名为HingeGanLoss的类 file_name = 'losses' class_name = ' ...
- python定义一个圆类_python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。...
** Python:设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性.编写构造方法和其他方法,计算周长和面积.请编写程序验证类的功能. class Circle: def -init-( ...
最新文章
- 如何用OpenCV制作一个低成本的立体相机
- linux 配置软连接的需要注意的一个问题
- 2017.5.23 -- 学习记录
- python的知识点总结云分享_Python工程师面试必备25条Python知识点
- 真正掌握vuex的使用方法(一)
- 中科大软件测试期末复习
- python输入三个商品_用python3采集shopify站点商品
- matlab求傅里叶级数展开式_傅里叶级数:从向量的角度看函数
- 从配置文件(*.config)读到内存中,手动修改配置文件后,内存中数据改变问题.
- 【前端基础】Web与Native交互之The JSBridge FAQ
- 矩阵维度必须一致是什么意思_糖化肌肤是什么意思?抗糖养肤你必须知道这些...
- 最全的软件开发报价标准
- 一级计算机office选择题题库及答案,计算机一级msoffice选择题题库40套含答案
- greenplum 数据库单机部署
- MFC调试工具——之BoundsChecker用法
- 计算机专硕学硕哪个好考啊,【专硕考研】计算机考研选学硕还是专硕?
- Android Studio4.2.2出现fastutil下载失败导致无法同步的问题
- 天池比赛如何使用docker提交
- 如何修改sql服务器名,修改计算机名并更新sqlserver中存储的服务器名称
- MySQL连接查询综合应用