【问题标题】:Detecting integer division in python在python中检测整数除法
【发布时间】:2018-03-16 15:13:59
【问题描述】:

我必须让 Python 2 到 3 跳转。整数除法是唯一让我害怕的事情。我们的测试套件还可以,但不一定设置为审查部门。是否有某种包装器或环境或hack,我可以从中运行可以检测何时使用整数除法的脚本?我主要在 Windows 上使用 Anaconda Python 2.7。

【问题讨论】:

  • from __futures__ import division:你完成了。

标签: python python-3.x python-2.7 integer-division


【解决方案1】:

您可以使用 python 2 引擎运行您的代码,但需要使用 -3 开关:

L:\>Python27_X64\python.exe -3 test.py
test.py:1: DeprecationWarning: classic int division
  i = 2/3

如果您希望在 python 2 或 3 中具有相同的行为,请使用

from __future__ import division

在您运行的每个模块开始时:现在除法是浮动的,除非您使用//

这是一个运行时选项而不是静态选项,因此您需要对代码进行良好的覆盖以捕获这些选项。例如,它没有检测到该代码上的任何内容:

if False:
    i = 2/3

-3 开关还可以检测其他不兼容问题(不是全部)而不会中断,因此您可以一次修复所有问题。

除此之外,分裂并不是最困难的问题。字符串与字节位很烦人。考虑一下:

with open("toto.txt","wb") as f:
    f.write("foo")

这在 Python 3 中现在无效(字符串不能写入二进制流),-3 脚本没有检测到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多