[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