[英]Detecting integer division in python
我必須讓Python 2到3跳。 整數除法是讓我害怕的唯一因素。 我們的測試套件還可以,但不一定要設置審查部門。 是否有某種包裝器或環境或黑客可以從中運行可以檢測何時使用整數除法的腳本? 我主要在Windows上使用Anaconda Python 2.7。
您可以使用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
開關還會檢測其他不兼容性(並非所有不兼容性)而不會中斷,因此您可以一次性修復它們。
除此之外,分工不是最困難的問題。 字符串vs字節位很煩人。 考慮一下:
with open("toto.txt","wb") as f:
f.write("foo")
這在Python 3中現在無效(字符串不能用二進制流寫),而-3
腳本沒有檢測到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.