[Web-SIG] OT: dotted names (Was: Re: A Python Web Application Package and Format)
Alice Bevan–McGregor
alice at gothcandy.com
Fri Apr 15 20:22:11 CEST 2011
On 2011-04-15 11:02:17 -0700, Jim Fulton said:
> On Fri, Apr 15, 2011 at 1:32 PM, Éric Araujo
> <merwok at 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.
More information about the Web-SIG
mailing list