您的位置:首页 > 编程语言 > Python开发

【脚本语言系列】关于Python基础知识兼容Python 2.x+Python 3.x,你需要知道的事

2017-07-20 15:07 991 查看

如何兼容Python 2.x+Python 3.x

保留字变函数

Python 2.x使用__future__模块使用Python 3.x中的函数

# -*- coding:utf-8 -*-
# For Python 2.x
print print


File "<ipython-input-13-8fe752f7a342>", line 3
print print
^
SyntaxError: invalid syntax


# -*- coding:utf-8 -*-
# For Python 2.x & Python 3.x
from __future__ import print_function

print(print)


<built-in function print>


模块更名

使用try/except模块处理Python 2.xPython 3.x不同名的模块

# -*- coding:utf-8 -*-
# For Python 2.x & Python 3.x
try:
import urllib.request as urllib_request # For Python 3.x
except ImportError:
import urllib2 as urllib_request # For Python 2.x


模块/功能过时

使用future模块禁用Python 2.x可用但Python 3.x过时的模块

# -*- coding:utf-8 -*-
# For Python 2.x & Python 3.x
from future.builtins.disabled import *

apply()


---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-15-99a87af09d54> in <module>()
3 from future.builtins.disabled import *
4
----> 5 apply()

c:\python27\lib\site-packages\future\builtins\disabled.pyc in disabled(*args, **kwargs)
55         no longer a builtin in Python 3.
56         '''
---> 57         raise NameError('obsolete Python 2 builtin {0} is disabled'.format(name))
58     return disabled
59

NameError: obsolete Python 2 builtin apply is disabled


什么是兼容Python 2.x+Python 3.x

常用的兼容Python2.x和Python3.x的方式是:

* 开发2个模块,分别针对Python 2.x和针对_ Python 3.x_;

* 使用兼容模块,用于兼容Python 2.xPython 3.x
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐