[Python-Dev] Relative import

Ken Manheimer klm at zope.com
Wed Dec 17 18:57:23 EST 2003


On Thu, 18 Dec 2003, Greg Ewing wrote:

> Thinking about the double_underscore names, it might not
> be so bad if they were a bit shorter, e.g.
> 
>    A: __root__.P.Q
>    B: __here__.P.Q
>       __here__.__parent__.P.Q
>    C: P.Q

Why separate __here__ and __parent__?  (I may just be confused, here.)
Aren't both about getting the relative package container?  Discussing
schemes for explicit relative and absolute imports with some
colleagues a few days ago, we liked '__pkg__' for the package
containing the current module - and __pkg__.__pkg__ to mean its'
container (and so on, for those non-programmers out there:-).  Someone
also wanted explicit expression of absolute, which we thought might be
'__python__'.

A: __python__.P.Q
B: __pkg__.P.Q
   __pkg__.__pkg__.P.Q
C: P.Q

That said, *i* much prefer the leading '.' scheme - i think the
underscores are distinctly *not* easier to read, and i'm not bothered,
anyway, by the "punctuality" of the leading-'.' - i think it stands
out enough to be noticable, and the fractured-path implication of it
conveys the relativeness...

Ken
klm at zope.com





More information about the Python-Dev mailing list