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) # 输出->本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在阿里云•对象存储OSS托管用户域名的https证书

摘要: OSS服务支持将用户域名绑定到OSS域名,并为此用户域名提供HTTPS证书托管服务。以满足用户使用自己的域名也能支持HTTPS安全加密的访问方式传输数据。面向人群您已经拥有了自己的域名。您已将或准备将自己的域名绑定到OSS域名上,并且使用…

win10系统VMware Workstation与Device/Credential Guard不兼容怎么办

解决方法: 打开本电脑-》管理-》服务和应用程序-》服务下找到如下图的HV 主机服务,双击选择禁用。 或者 转到“ 控制面板” >“ 卸载程序” >“ 打开或关闭Windows功能”以关闭Hyper-V。 步骤二:通过命令关闭Hyper-V(控制…

mosca mysql_nodejs 完成mqtt服务端

今天使用mosca 写了一下基于MQTT的消息服务端,用于下一个项目的知识储备;该功能主要是基本 NODEJS 的 mosca 插件完成1. 安装 moscanpm install mosca --save2. 创建mqtt服务端,端口为:8000var mosca require(mosca);var MqttSer…

数据大爆炸边缘期 让存储告别旧时代

戳蓝字“CSDN云计算”关注我们哦!好莱坞一部高智商大数据电影《永无止境》,讲述一位落魄的作家库珀,服用了一种可以迅速提升智力的神奇蓝色药物。他将这种高智商用于炒股,能在短时间掌握无数公司资料和背景,也就是将世…

AliOS Things图形界面开发指南

简介物联网设备开发过程中,嵌入式GUI(用户图形界面)的开发是一个重要的组成部分。许多智能设备如智能家电、智能手表、智能仪表上都会涉及到GUI开发。AliOS Things集成开源图形库littlevGL,可以在linux上进行图形界面开发。开发完…

unoconv执行出错unable to connect or start own listener

异常现象: Failed to connect to /usr/lib/libreoffice/program/soffice.bin (pid7342) in 6 seconds. Connector : couldn’t connect to socket (Success) Error: Unable to connect or start own listener. Aborting. 是在执行unoconv -f pdf xxx.txt的时候出现…

微服务的好处与弊端_《微服务架构设计模式》-学习总结07

本篇主要总结第七章:在微服务架构中实现查询在微服务架构中查询数据的挑战何时以及如何使用API组合模式实现查询 何时以及如何使用CQRS模式实现查询 微服务架构中,查询通常需要检索分散在多个服务所拥有的数据库中的数据,跨服务数据查询的两种…

ECS主动运维2.0,体验升级,事半功倍

摘要: 阿里云致力于提供更好用的运维体验,让您使用ECS的过程更透明、高效,并实现更加标准化、自动化的运维方式。基于主动运维2.0,您使用ECS云服务器的体验更加流畅,而且利用系统事件,不再依赖于工单联系客…

mysql bench如何下载_MySQLWorkbench下载与使用教程详解

一、MySQL Workbench的下载Workbench是MySql图形化的管理工具,可以在Workbench里输入MySql的语句,这可能更适合大多数人的视觉,有些操作更能更简单化首先我们下载workbench然后选择download选择no thanks,just download下载后点击…

为什么说边缘计算的发展比5G更重要?

戳蓝字“CSDN云计算”关注我们哦!由TechSugar编辑部翻译自medium文︱Pavel Konecny本篇文章转自公众号TechSugar(ID:techsugar)边缘计算相对于5G都有哪些优势?犹记2016年,我在汉诺威参加德国汉诺威消费电子、信息及通信…

ICDE:POLARDB定义云原生数据库

摘要: 4月17日(巴黎时间)阿里云POLARDB走出国门,亮相ICDE2018,并同步举办阿里云自有的POLARDB技术专场。在会上,阿里云进行了学术成果展示,从而推动Cloud Native DataBase成为行业标准。4月17日…

PLSQL连接ORACLE

文章目录① 安装oracle服务端②安装plsql③配置监听④配置2个⑤重启plsql① 安装oracle服务端 ②安装plsql ③配置监听 ④配置2个 【打开客户端】-【取消】-【工具】-【首选项】-【连接】 配置截图2个配置 【Tools】-【Preferences】-【Connection】 根据自己的oracle安装路…

python 类定义 垃圾_什么是python对象摧毁?python中的对象摧毁(垃圾回收)机制是什么?...

在这篇文章之中我们来了解一下python对象摧毁(垃圾回收),对于刚刚接触到python这一编程语言的朋友来说,对于python对象摧毁(垃圾回收)的了解应该比较少,并且不清楚关于python垃圾回收这一方面的知识。不过没关系,在接下来的文章之…

mysql图片字符集_MySQL字符集介绍及配置

1.MySQL编码集查看MySQL支持的字符集mysql> show character set;查看MySQL当前的字符集mysql> show variables like character%;------------------------------------------------------| Variable_name | Value |----------------------------------------------------…

新功能:阿里云负载均衡SLB支持HTTP访问强制跳转HTTPS

摘要: 很高兴的告诉大家,阿里云负载均衡SLB已经在澳大利亚(悉尼)、日本(东京)、阿联酋(迪拜)、美国 (弗吉尼亚)、美国(硅谷)、马来西亚…

算法一看就懂之「 堆栈 」

戳蓝字“CSDN云计算”关注我们哦!今天咱们再来继续看看「 堆栈 」吧,我写技术文章很少 show code,所以经常有人吐槽。好吧,这个算法系列的文章我打算每一篇的结尾处都找一道算法题写出代码示例,这总可以了吧。一、「 堆…

Centos/Red Hat7.9 源码和在线yum 安装 vsftpd

文章目录一、版本简述1. 环境介绍2. 常用命令二、源码下载2.1. 官网链接2.2. 下载方式2.3. 检查2.4. 源码安装2.5. 异常处理2.6. 检查是否安装成功一、版本简述 1. 环境介绍 软件系统版本Red Hat Enterprise Linux Server7.9 (Maipo)CentOS Linux release 7.9(Core)jdk1.8.0_…

阿里云黄海宇:窄带高清2.0——让直播更惊艳的魔术

摘要: 2018年4月11-12日,2018亚太CDN峰会在北京隆重召开,大会由亚太CDN领袖论坛、电视云论坛、短视频论坛、视频云论坛、新技术论坛、运营商论坛、国际云论坛等7大部分组成。在视频云论坛上,阿里云视频云高级算法专家黄海宇作了题…

vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

原vsftpd服务器的系统从centos6.8升级到centos7.2。vsftpd使用yum方式安装,用户采用系统用户登录。由于系统升级到centos7,yum安装的vsftpd版本改变。因此按centos6的设置,登录时报错。配置文件未修改,主要是修改了ftp的主目录权限…

学Python后到底能干什么?网友:我太难了

感觉全世界营销文都在推Python,但是找不到工作的话,又有哪个机构会站出来给我推荐工作?笔者冷静分析多方数据,想跟大家说:关于超越老牌霸主Java,过去几年间Python一直都被寄予厚望。但是事实是虽然上升趋势…