Python学习_10__python2到python3
同样作为动态语言,python的面相对像和ruby有很多类似的地方,这里还是推荐《Ruby元编程》一书来参考学习python的面向对象。然而python并不是纯面向对象设计,所以很多ruby种灵活的技巧在python中可能并不适用,但是这并不影响该书对python面向对象学习的借鉴意义。
从类和实例开始,谈python2到python3
类和实例是面向对象的基础,类是一个对象的定义,比如人类定义了人应该有的基本属性和方法,而实例则是真正的实物,实例中存放了对象的具体信息,如小明是人类的一个实例,小明的身高体重等信息构成小明这个对象的具体信息。然而,类本省也是一个对象,新式类全都继承自一个父类,object是所有类的祖先,是祖先类的最顶级建筑,object这个类也是一个对象,python中,object的类不再称为class,而是type,任何用class关键字定义的类,都是type的一个实例。
类可以通过class关键字来创建:
class MyNewObjectType(bases):
‘define MyNewObjectType class’
class_suite
在python2中,这里面其实一团糟,经典类:没有继承自其他类的类,是没有__class__属性的,通过type()方法,可以看到,经典类的类型是:<type 'classobj’>;而新式类,即通过继承其他类而来的类,其类型则是type,python曾近试图将type和class统一,但是明显在python2中,这些概念还是能够困扰到一些人:
class Cls1:
pass
print type(Cls1)
class Cls2(object):
pass
print type(Cls2)
print Cls2.__class__
上述代码结果为:
<type 'classobj'>
<type 'type'>
<type 'type'>
如果你沉迷于类似ruby那样纯面向对象的语法,python2或许会让你受不了,这些遗留问题在python3中得以解决,使其对面向对象的支持更加优秀。
鉴于以上原因,在python面向对象的学习中,全部采用python3,python3由于很多对python2的不兼容性受到质疑,但是至少朝着正确的方向发展,如果不更改python2中遗留的一些问题,当python的库越来越多的时候,难以避免会出现更多的问题,python3的升级同时也会讲一些python2中劣质的库做一次淘汰,优质的库肯定在社区中会得到优先地移植,从语言本身来讲,这未尝不是一件好事情,可以让python3摆脱掉很多的历史包袱,并且具有更加优秀的语法,也让我对其有更加好的预期。从python2到python3是一个重要的决定,他可能会让python失去很多,甚至可能会让python退出舞台,但是我仍然对其看好,相比java对扩展包的不闻不问,python3对自身做出的决绝的改革给python搭建了全新的舞台。
python3中的新特性
http://my.oschina.net/lenglingx/blog/205626
一些常用特性上文中都以提到
Python学习_10__python2到python3的更多相关文章
- Python学习札记(二) python3.5安装 + (假装是)第一个Python程序
参考: Mac OS 安装 Python3.5 廖雪峰Python教程:安装Python 笔记: 安装: 1.官方网站下载安装包:安装程序 2.执行安装程序完成Python3.5包的安装. 3.安装P ...
- python学习笔记二:(python3 logging函数中format说明)
背景,在学习logging时总是遇到无法理解的问题,总结,尝试一下更清晰明了了,让我们开始吧! logging模块常用format格式说明 %(levelno)s: 打印日志级别的数值 %(level ...
- 吴裕雄--天生自然python学习笔记:Python3 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...
- 吴裕雄--天生自然python学习笔记:Python3 JSON 数据解析
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. Python3 中可以使用 json 模块来对 JSON 数据进 ...
- 吴裕雄--天生自然python学习笔记:Python3 多线程
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条 ...
- 吴裕雄--天生自然python学习笔记:Python3 SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...
- 吴裕雄--天生自然python学习笔记:Python3 网络编程
Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络 ...
- 吴裕雄--天生自然python学习笔记:Python3 MySQL 数据库连接 - PyMySQL 驱动
什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 AP ...
- 吴裕雄--天生自然python学习笔记:Python3 命名空间和作用域
命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的. 命名空间提供了在项目中避免名字冲突的一种方法.各个命名空间是独立的,没有任何关系的,所以一个 ...
随机推荐
- PHPstorm 函数时间注释的修改
正常的PHPstorm里面函数方法的注释是没有动态时间设置的,但是看了PHP file里面有时间日期的注释,而PHP Function Doc Comment 却没有,让很多PHPer很头疼,今天在搜 ...
- 用tortoiseGit管理GitHub项目代码(完整教程)
一.为什么要写这篇博客呢,因为在一开始用tortoiseGit来管理项目的时候,在百度上找了很多教程,但是感觉说的都不是很全,有些东西以及操作没写清楚,所以想写一片比较完整用tortoiseGit管理 ...
- 计算器的单元测试dome
通过上一篇文章,Appium环境已经搭建好了,下面我们通过Python脚本来测试原生的计算器程序 --------------------------------------------------- ...
- .NET版支付宝商户会员卡接入
最近公司计划对接支付宝会员卡功能,而任务恰巧由领导安排给我这边,小弟之前也未做过支付宝接口,研究了三天,终于将支付宝会员卡API接口大体上调通了,现将其整理下,以供参考. 蚂蚁金服开发平台-商户会员卡 ...
- python之 json里字典中的value去重
import simplejson as json with open(r'C:\Users\Desktop\test.txt', 'r' ) as f1, open(r'C:\Users\Deskt ...
- jvm内存回收诡异现象
在知乎上看到一篇提问,于是做了个实验帮助他解答,这里整理成一篇文章分享一下. 先看代码如下代码: /** * Created on 2017/12/16. * * -verbose:gc -XX:+U ...
- Map Task内部实现分析
上篇我刚刚学习完.Spilt的过程,还算比較简单的了,接下来学习的就是Map操作的过程了,Map和Reduce一样.是整个MapReduce的重要内容,所以.这一篇,我会好好的讲讲里面的内部实现过程. ...
- Spring之AOP实现面向切面编程
近期在学Java的动态代理和Spring面向切面编程,越来越认为Spring设计的真的是太完美了.于是,想一个最简单的样例来跑一下.但问题多多,显示缺少,Aspectj里面的相应的类.导入Aspect ...
- Javascript 方法apply和call的差别
call与aplly都属于Function.prototype的一个方法.所以每一个function实例都有call.apply属性 同样点: call()方法和apply()方法的作用同样: 改变原 ...
- chrome解决http自动跳转https问题
1.地址栏输入: chrome://net-internals/#hsts 2.找到底部Delete domain security policies一栏,输入想处理的域名,点击delete. 3.搞 ...