0
点赞
收藏
分享

微信扫一扫

Python2升级Python3改造手法


Python 3.x不兼容Python 2.x,但这两个在语法层面差别不大。

Python 3.x做了部分修改,但大体语法与Python 2.x相似,Python 3.x的使用者可以轻松阅读Python 2.x编写的代码。

本节将从项目改造入手,以帮助大家了解它们之间的差异。

痛点:前段时间,集成一个插件到postgres中,Python的库是Python2,需要升级Python3,这里记录一下迁移的改动,基本上涵盖了大部分的改造,如果大家的项目也是类似的情况,可以直接全局搜索代码替换这些变化,这样可以快速魔改,兼容Python3。

简单来说,Python2到Python3又如下区别:print函数、整除、Unicode、迭代器、不等运算符、数据类型、异常处理、包管理、True与False等。

具体来说,在项目中涉及到的改造变化如下:

  • dict.iteritems() -> dict.items()
  • from x import y -> from .x import y
  • sys.maxint -> sys.maxsize
  • isinstance(obj, StringType) -> isinstance(obj, str)
  • global -> def function wrapper a global var
  • dict.keys() -> list(dict.keys())
  • long -> int
  • try Exception, e -> try Exception as e
  • unicode -> str
  • dict.has_key(key) -> if key in dict
  • iterator.next() -> next(iterator)
  • string.lower(s) -> s.lower()
  • map() -> list(map())
  • / -> //
  • 0L -> 0
  • print "" -> print("")

本节完~


举报

相关推荐

0 条评论