[Python-Dev] Re: PEP 328 -- relative and multi-line import (original) (raw)

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