[Python-Dev] pathlib - current status of discussions (original) (raw)

Chris Angelico rosuav at gmail.com
Thu Apr 14 09:50:57 EDT 2016


On Thu, Apr 14, 2016 at 11:45 PM, Random832 <random832 at fastmail.com> wrote:

On Thu, Apr 14, 2016, at 09:40, Nick Coghlan wrote:

That's not a new problem though, it already exists if you pass in a mix of bytes and str:

There's also already a solution (regardless of whether you want bytes or str as the result), which is to explicitly coerce all the arguments to the same type: It'd be nice if that went away. Having to do that makes about as much sense to me as if you had to explicitly coerce an int to a float to add them together. Sure, explicit is better than implicit, but there are limits. You're explicitly calling os.path.join; isn't that explicit enough?

Adding integers and floats is considered "safe" because most people's use of floats completely compasses their use of ints. (You'll get OverflowError if it can't be represented.) But float and Decimal are considered "unsafe":

1.5 + decimal.Decimal("1.5") Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for +: 'float' and 'decimal.Decimal'

This is more what's happening here. Floats and Decimals can represent similar sorts of things, but with enough incompatibilities that you can't simply merge them.

ChrisA



More information about the Python-Dev mailing list