Python2和Python3之间的区别
来源:互联网 发布:linux服务器架设书 编辑:程序博客网 时间:2024/06/15 21:53
- print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc')
但是 python2.6+ 可以使用 from __future__ import print_function 来实现相同功能
- 在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样 class Foobar(object): pass 显式地子类化object。但是最好还是加上. 主要区别在于 old-style 是 classtype 类型而 new-style 是 type类型
- 原来1/2(两个整数相除)结果是0,现在是0.5了。python 2.2+ 以上都可以使用 from __future__ import division 实现改特性, 同时注意 // 取代了之前的 / 运算
- xrange重命名为range 同时更改的还有一系列内置函数及方法, 都返回迭代器对象, 而不是列表或者 元组, 比如 filter, map, dict.items 等
- except Exception, e变成except (Exception) as e 只有 python2.5 及以下版本不支持该语法. python2.6 是支持的. 不算新东西
- exec变成函数 类似 print() 的变化, 之前是语句.
* 最核心的变化它没有说, 对 bytes 和 原生 UNICODE 字符串的支持, 删除了 unicode 对象, str 为原生 unicode 字符串, bytes 替代了之前的 str 这个是最核心的.
import在Python3中默认使用绝对路径导入了,这是因为相对路径的导入是具有歧义的
比如文件夹结构:
在main.py中,通过
比如文件夹结构:
- test/
- main.py
- lib/
- __init__.py
- some_func.py
- other_func.py
在main.py中,通过
import lib.some_func或者
from lib import some_func在some_func.py中,如果使用import other_func是会报错的,建议使用
from lib import other_func
强行使用相对导入需要from .other_func import *
所以说从Python2迁移到Python3,会看到一个大型项目原有的代码结构是否良好,如果之前你的代码到处都是相对导入。。。啧啧
更详细的参见:PEP 0328 -- Imports: Multi-Line and Absolute/Relative
阅读全文
0 0
- Python2和Python3之间的区别
- python3和python2的区别
- python3和python2的区别
- python2和python3的区别
- python2 和Python3的区别
- python2和python3的区别
- python2和python3的区别
- Python2和Python3的区别
- python2和python3的区别
- Python2和Python3的区别
- python2和python3的区别
- python2和python3的区别
- python2 和 python3 的区别
- Python3 和 Python2的区别
- python2和python3的区别
- Python2和Python3的区别
- python3和python2的区别
- python3和python2的区别
- mysql数据库引擎常用面试总结
- Ubuntu 16.04 常用软件安装
- G
- 左神面试算法整理--栈的逆序
- 每天一点新姿势:spring事务的学习
- Python2和Python3之间的区别
- Python基础
- Struts2(三)-Struts2之文件的上传和下载
- spark机器学习构建回归模型
- mongoose mpromise被废弃警告,(node:3341) DeprecationWarning: Mongoose: mpromise (mongoose's default promis
- 【Java】断言中assertNotEquals与assertNotSame的区别
- thinkphp
- 浅谈web网站架构演变过程
- 测试