On 2011-04-15 11:02:17 -0700, Jim Fulton said:

On Fri, Apr 15, 2011 at 1:32 PM, Éric Araujo <mer...@netwok.org> wrote:
As an aside, I wonder why people use dot+colon notation instead of just dots to reference callables.  In distutils2 for example we resolve dotted names to find command classes, command hooks and compilers.  So what’s the benefit, marginally easier parsing?

An opportunity of using a colon is that it allows::

   dotted.module.name:expression

where expression may be more than just a name::

  foo.bar:Bar()

Or foo.bar:Baz.factory.

I wouldn't go so far as to eval() what's after the colon. The real difference is this:

[foo.bar]:[Baz.factory]
|         ^- Attribute lookup.
^- Module lookup.

You can't do this:

import foo.bar.Baz.factory

Thus the difference.  However, the syntax is actually more flexible than that:

[foo.bar]/[subfolder/file]
|         ^- Sub-path.
^- Module.

/[foo/bar]
 ^- Just path.

        — Alice.


_______________________________________________
Web-SIG mailing list
Web-SIG@python.org
Web SIG: http://www.python.org/sigs/web-sig
Unsubscribe: 
http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com

Reply via email to