Python _2or3 模块是什么?

3

我正在编写一个模块,让我可以在Python 3中编写代码,但仍然可以在Python 2中运行。 实际上,这看起来非常容易...还有其他需要添加的内容吗?从我的(有限的)交互式解释器瞎搞来看,未来的导入不会影响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中你不能做,而你通常可以做(例如字典压缩),并且这两种语言之间存在一些陷阱(例如字节码)。看起来你永远不应该使用字节。

任何评论都将不胜感激。


你是指“推导式”吗?看起来你永远不应该尝试处理二进制文件。 - John Machin
这可能是离题的,应该在程序员.SE或codereview.SE上讨论,我认为。或者呢? - Lennart Regebro
1个回答

3

可以看一下six,它已经做到了这一点,并且还有更多功能。它还具有帮助您在两个版本中执行二进制和Unicode的方法。但是,并非所有需要执行的技术都可以通过这种方式完成,特别是如果您需要支持Python 2.5或更早版本。我试图在书中涵盖大部分内容,但我肯定还漏掉了一些。


谢谢,我已经查看了。从模块的外观来看,问题似乎比我预期的要大。例如,我没有意识到Python开发人员已经移动了标准模块。 - Garrett Berg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接