Dev] / as path join operator (original) (raw)

Ian Bicking ianb at colorstudy.com
Thu Jan 26 04:02:07 CET 2006


Steven Bethard wrote:

My only fear with the / operator is that we'll end up with the same problems we have for using % in string formatting -- the order of operations might not be what users expect. Since join is conceptually an addition-like operator, I would expect:

Path('home') / 'a' * 5 to give me: home/aaaaa If I understand it right, it would actually give me something like: home/ahome/ahome/ahome/ahome/a

Both of these examples are rather silly, of course ;) There's two operators currently used commonly with strings (that I assume Path would inherit): + and %. Both actually make sense with paths too.

filename_template = '%(USER)s.conf' p = Path('/conf') / filename_template % os.environ which means: p = (Path('/conf') / filename_template) % os.environ

But probably the opposite is intended. Still, it will usually be harmless. Which is sometimes worse than usually harmful.

It doesn't really matter what order it happens in there. Assuming concatenation results in a new Path object, not a str.

-- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org



More information about the Python-Dev mailing list