[Python-Dev] Re: Python-Dev Digest, Vol 5, Issue 57 (original) (raw)
Guido van Rossum guido at python.org
Tue Dec 16 17:07:56 EST 2003
- Previous message: [Python-Dev] Re: Python-Dev Digest, Vol 5, Issue 57
- Next message: [Python-Dev] Re: Relative import
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Ed]
What's the motivation for restricting it to from-imports? I suspect that this will cause confusion, and it doesn't feel self-consistent to me: why can you call a module ".foo" in one context, and not in another? In particular, I think that if people see that you can do:
from .foo import * Then they'll assume that they can also do: import .foo With the obvious semantics, i.e. equivalence to: from . import foo What do we gain by not extending the syntax to from-less imports?
Currently, the rule is that after
import
you can use
in an expression to refer to whatever you imported. This applies to both
import foo <--> foo in expressions
and
import foo.bar <--> foo.bar in expressions
But if we were to allow
import .foo
we'd have to allow
.foo
in expressions, and I would like to reserve that syntax for the "with" statement.
[Werner]
But it would be possible to say:
import .foo as myfoo import foo and access both through modules through the name they're bound to. Therefore I'd propose to allow relative from-less imports, but require them to always use the "as" clause.
This just adds more complexity; there's nothing you can do without this addition.
[Jack]
Is "from . import *" allowed? Whenever I start to think about it I tend to go into oscillation (yes because within package foo its the same as "from foo import *" on the outside; no because "import *" isn't allowed today either).
Yes, "from . import " has the exact same meaning as spelling out the corresponding absolute module path after "from".
--Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] Re: Python-Dev Digest, Vol 5, Issue 57
- Next message: [Python-Dev] Re: Relative import
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]