• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 让python同时兼容python2和python3的8个技巧分享

让python同时兼容python2和python3的8个技巧分享

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python2和python3共存,python2 python3,python2还是python3,学python2还是python3,python2和python3区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

python邮件列表里有人发表言论说“python3在10内都无法普及”。在我看来这样的观点有些过于悲观,python3和python2虽然不兼容,但他们之间差别并没很多人想像的那么大。你只需要对自己的代码稍微做些修改就可以很好的同时支持python2和python3的。下面我将简要的介绍一下如何让自己的python代码如何同时支持python2和python3。

一、放弃python 2.6之前的python版本

python 2.6之前的python版本缺少一些新特性,会给你的迁移工作带来不少麻烦。如果不是迫不得已还是放弃对之前版本的支持吧。

二、使用 2to3 工具对代码检查

2to3是python自带的一个代码转换工具,可以将python2的代码自动转换为python3的代码。当然,不幸的是转换出的代码并没有对python2的兼容做任何的处理。所以我们并不真正使用2to3转换出的代码。执行2to3 t.py 查看输出信息,并修正相关问题。

三、使用python -3执行python程序

2to3 可以检查出很多python2&3的兼容性问题,但也有很多问题是2to3发现不了的。在加上 -3 参数后,程序在运行时会在控制台上将python2和python3不一致,同时2to3无法处理的问题提示出来。比如python3和python2中对除法的处理规则做过改变。使用-3参数执行4/2将提示 DeprecationWarning: classic int division 。

四、from __future__ import

“from __future__ import”后即可使使用python的未来特性了。python的完整future特性可见 __future__ 。python3中所有字符都变成了unicode。在python2中unicode字符在定义时需要在字符前面加 u,但在3中则不需要家u,而且在加u后程序会无法编译通过。为了解决该问题可以 “from future import unicode_literals” ,这样python2中字符的行为将和python3中保持一致,python2中定义普通字符将自动识别为unicode。

五、import问题

python3中“少”了很多python2的包,在大多情况下这些包之是改了个名字而已。我们可以在import的时候对这些问题进行处理。
    from UserDict import UserDict
    #建议按照python3的名字进行import
    from UserDict import DictMixin as MutableMapping
except ImportError:#python3
    from collections import UserDict
    from collections import MutableMapping</div>

六、使用python3的方式写程序

python2中print是关键字,到了python3中print变成了函数。事实上在python2.6中已经带了print函数,所以对print你直接按照2to3中给出的提示改为新写法即可。在python3中对异常的处理做了些变化,这个和print类似,直接按照2to3中的提示修改即可。

七、检查当前运行的python版本

有时候你或许必须为python2和python3写不同的代码,你可以用下面的代码检查当前系统的python版本。
if sys.version > '3':
    PY3 = True
else:
    PY3 = False
</div>

八、six

six 提供了一些简单的工具用来封装 Python 2 和 Python 3 之间的差异性。我并不太推荐使用six。如果不需要支持python2.6之前的python版本,即使不用six也是比较容易处理兼容性问题的。使用six会让你的代码更像python2而不是python3。
python3的普及需要每位pythoner的推动,或许你还无法立即升级到python3,但请现在就开始写兼容python3的代码,并在条件成熟时升级到python3。

注:python2同python3的差异

如果你更全面的了解从python2迁移到python3的相关问题,推荐阅读 Porting to Python 3 这是一本免费的python读物。

</div>

您可能想查找下面的文章:

  • Windows下安装python2和python3多版本教程
  • WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
  • Windows下Python2与Python3两个版本共存的方法详解
  • python嵌套函数使用外部函数变量的方法(Python2和Python3)
  • 让python同时兼容python2和python3的8个技巧分享
  • 让python同时兼容python2和python3的8个技巧分享

相关文章

  • Python实现的彩票机选器实例
  • 详解Python中的序列化与反序列化的使用
  • 学习python的几条建议分享
  • Python使用PDFMiner解析PDF代码实例
  • Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
  • python集合用法实例分析
  • Python3使用requests发闪存的方法
  • 在centos7中分布式部署pyspider
  • Python中Collections模块的Counter容器类使用教程
  • Python中使用动态变量名的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python下的twisted框架入门指引
    • Python监控主机是否存活并以邮件报警
    • Python检测字符串中是否包含某字符集合中的字符
    • 跟老齐学Python之重回函数
    • python中argparse模块用法实例详解
    • 简明 Python 基础学习教程
    • python使用reportlab实现图片转换成pdf的方法
    • 详细解析Python当中的数据类型和变量
    • Python实现计算两个时间之间相差天数的方法
    • python 实现网上商城,转账,存取款等功能的信用卡系统

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有