[Python-Dev] Re: PEP 328 -- relative and multi-line import
Aahz
aahz at pythoncraft.com
Mon Apr 5 12:03:09 EDT 2004
On Mon, Apr 05, 2004, Shane Holloway (IEEE) wrote:
>>Aahz:
>>>
>>>Good point. Here's what I *think* the semantics are; as soon as I get
>>>agreement, I'll update the PEP. Given a package layout::
>>>
>>> package
>>> subpackage1
>>> moduleX
>>> moduleY
>>> subpackage2
>>> moduleZ
>>> moduleA
>>>
>>>Each leading "." refers to one level of parent. Assuming that the
>>>current file is ``moduleX.py``, following are correct usages of the new
>>>syntax::
>>>
>>> from .moduleY import spam
>>> from ..subpackage1 import moduleY
>>> from ..subpackage2.moduleZ import eggs
>>> from ..moduleA import foo
>>> from ...package import bar
>
> What about names inside package __init__?
>
> from .. import bar
>
> Is this also valid?
Do you mean subpackage1's __init__.py? If so, yes. For most purposes,
a package's __init__.py is treated as if it were a module with the name
of the package.
Hmmmm... I think I see what you're getting at: how do you access
subpackage1 from package's __init__.py using relative imports? Seems to
me that you'd have to do ::
from .package import subpackage1
Normally, though, subpackages import from their parents, not the other
way around.
--
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
Why is this newsgroup different from all other newsgroups?
More information about the Python-Dev
mailing list