[Python-ideas] PEP 428: poll about the joining syntax
Georg Brandl
g.brandl at gmx.net
Fri Oct 12 21:39:16 CEST 2012
Am 12.10.2012 18:27, schrieb Ethan Furman:
> Georg Brandl wrote:
>> Am 12.10.2012 14:45, schrieb Blake Hyde:
>>> I'm a Python developer rather than a developer of Python, but I'd like to ask a
>>> question about this option (and implicitly vote against it, I suppose); if you
>>> specialize a method name, such as .pathjoin, aren't you implying that methods
>>> must be unambiguous even across types and classes? This seems negative. Even
>>> if .join is already used for strings, it also makes sense for this use case.
>>
>> Of course different classes can have methods of the same name.
>>
>> The issue here is that due to the similarity (and interchangeability) of path
>> objects and strings it is likely that people get them mixed up every now and
>> then, and if .join() works on both objects the failure mode (strange result
>> from str.join when you expected path.join) is horribly confusing.
>
> I don't understand the "horribly confusing" part. Sure, when I got them
> mixed up and ended up with a plain ol' string instead of a really cool
> Path it took a moment to figure out where I had made the error, but the
> traceback of "AttributeError: 'str' object has no attribute 'path'" left
> absolutely no room for confusion as to what the problem was.
"no attribute 'path'"? Not sure where that exception comes from.
This is what I meant:
>>> p = Path('/usr')
>>> p.join('lib')
Path('/usr/lib')
>>> p = '/usr'
>>> p.join('lib')
'l/usri/usrb'
Georg
More information about the Python-ideas
mailing list