python _2or3 模块?

标签 python programming-languages python-3.x python-2.x

我正在编写一个模块,让我可以在 python 3 中编写代码,但仍然可以在 2 中运行它。实际上它看起来出奇地简单……还有什么我应该补充的吗?从我对交互式解释器的(有限的)抨击来看, future 的导入不会影响 python 3 并且被视为多余的。

# _2or3.py
'''
Common usage:

from __future__ import print_function, nested_scopes, division, absolute_import, unicode_literals
from _2or3 import *
'''

import sys

if sys.version[0] == '2':
   range = xrange
   input = raw_input 

很明显,有些事情你不能做,而你通常可以在 3 中做(比如字典压缩),并且语言之间有一些陷阱(比如字节码。看起来你永远不应该使用字节)

如有任何意见,我们将不胜感激。

最佳答案

查看 six ,它已经这样做了,并且加载了更多。它还具有帮助您在两个版本中执行二进制和 Unicode 的方法。但是,并非您需要执行的所有技术都可以通过这种方式完成,尤其是当您需要支持 Python 2.5 或更早版本时。我试图涵盖其中的大部分in the book , 但我确定我错过了一些。

关于python _2or3 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5520286/

相关文章:

python - 在 python 中从列表创建类实例作为属性

java - 在哪里编写这个启发式代码?

programming-languages - 不允许 XSS、SQL 注入(inject)的编程语言

python - 如何绘制四个带有双 y 轴图的子图

python - 如何使用 aiohttp 模拟外部请求?

python - 浏览所有 Bonjour 服务

Python 3.6.X : Different values of from timestamp on Windows and Linux

programming-languages - 在程序中使用括号会降低可读性的例子有哪些?

python - XML 解析忽略文本

python - Matplotlib 随着时间的推移绘制旧点消失的点