Don’t use from __future__ import division
tl;dr: For maintenance reasons, just float() one of the values instead.
Don’t use from __future__ import division. Consider these two cases:
1. You’re moving a block of code from a file without “future division” to a file with “future division”. You forget to change all of the /s to //s, and are screwed (because you have incomplete test coverage). Or maybe you’re moving a block of code the other way, and similarly forget to change things.
2. You have a module with from __future__ import division, but all division operations were removed in an earlier commit. Can you now remove the from __future__ import? Maybe not, and you might keep them forever, just in case there are outstanding patches to the module. But not everyone will follow that logic.
Summary: subtle global behavior mutation is bad, even if scoped to a single file.
(Consider ignoring all of this if you’re developing for both Python 2 and Python 3.)
Leave a Reply