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 字典来实现的. 命名空间提供了在项目中避免名字冲突的一种方法.各个命名空间是独立的,没有任何关系的,所以一个 ...
随机推荐
- Lonlife 1000 - Spoon Devil's 3-D Matrix
1000 - Spoon Devil's 3-D Matrix Time Limit:1s Memory Limit:32MByte Submissions:208Solved:65 DESCRIPT ...
- pipelineDB里Combine用法
combine only works on aggregate columns that belong to continuous views. 创建CONTINUOUS CREATE CONTINU ...
- 企业级Tomcat安全管理优化方案
telnet管理端口保护 1. 修改默认的8005管理端口为不易猜测的端口(大于1024): <Server port=" shutdown="dangerous" ...
- day10、nfs+rsync全网备份及实时同步
题目要求 注意:博主使用的系统为: [root@web01 ~]# uname -a Linux web01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29 ...
- Web Api 基于Zookeeper的服务注册与发现
安装与差异 Zookeeper安装请参考我上篇文章 http://www.cnblogs.com/woxpp/p/7700368.html 基于Nginx的服务提供和消费 基于zookeeper的服务 ...
- javaweb学习总结(六)——Servlet开发(二)(转)
转载自 http://www.cnblogs.com/xdp-gacl/p/3763559.html 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文 ...
- C++彩色数据流动界面
一个数据流动界面 #include <windows.h> #include <time.h> #include <cstdio> #include <str ...
- keeplived日志位置指定
作为一个运维DBA,除了关心数据库的关键指数.还得往架构和底层基础知识多靠拢. 2010年刚工作的时候,那会Cacti监控比較流行吧.可恶的是SNMP会把默认日志写到系统日志文件中面,导致排错时非常受 ...
- 腾讯Web工程师的前端书单
2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍. JavaScript 入门 <JavaScript权威指 ...
- 【java】获取当前环境属性及编码乱码示例
package 字符编码; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impo ...