python中添加条件_根据python版本在代码中添加条件

本问题已经有最佳答案,请猛点这里访问。

我目前正在python 3.3上编写一些代码。 不幸的是,我依赖的一些插件还不兼容Python3,我需要切换回Python2.7。

为了避免重构所有代码,我想做类似的事情

if(os.python.version<3.0):

from _future_ import print, super

这样做的正确方法是什么

stackoverflow.com/questions/446052/

您可以无条件地使用from __future__ import print_function,但是很多更改都没有轻松的导入来解决它们。 移植程序需要更多的工作。

有几个方面你在这里走错了路。首先,不要检查版本,检查功能。 @dave你在评论中的链接很好地解释了这一点。

其次,如果你确实检查了版本,即使没有多个拼写错误,这根本不起作用:

if(os.python.version<3.0):

from _future_ import print, super

__future__语句只能在模块docstring,空行,注释行和其他__future__语句之前。它不会出现在其他任何地方 - 如果你尝试,你只会遇到语法错误。

第三,对于你给出的例子,检查任何东西都是毫无意义的。靠近文件顶部,

from __future__ import print_function

在Python 2.7和Python 3中都很好。在Python 3中它根本没有效果。

它们也可以在模块docstring之前。

谢谢! 编辑添加。 模块可以有文档字符串吗? 大声笑 ;-)

谢谢,这解决了我的问题。

真的不回答这个问题..

正如zhangyangyu所说,你可以通过sys.version_info获取当前的python版本。

sys.version_info是元组,我总是在版本比较中使用前三个元素,如下所示:

if sys.version_info[:3] > (3,0):

do something

elif sys.version_info[:3] > (2,5,2):

do something else

或者,您可以使用distutils.version将当前版本与指定版本进行比较。

以下是关于如何使用distutils.version的答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值