[Python-Dev] Import semantics (original) (raw)
Samuele Pedroni pedronis at strakt.com
Mon Jun 12 10:00:13 CEST 2006
- Previous message: [Python-Dev] Import semantics
- Next message: [Python-Dev] Import semantics
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Fabio Zadrozny wrote:
Python and Jython import semantics differ on how sub-packages should be accessed after importing some module:
Jython 2.1 on java1.5.0 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> import xml >>> xml.dom <module xml.dom at 10340434> Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import xml >>> xml.dom Traceback (most recent call last): File "", line 1, in ? AttributeError: 'module' object has no attribute 'dom' >>> from xml.dom import pulldom >>> xml.dom <module 'xml.dom' from 'C:\bin\Python24\lib\xml\dom_init_.pyc'> Note that in Jython importing a module makes all subpackages beneath it available, whereas in python, only the tokens available in init.py are accessible, but if you do load the module later even if not getting it directly into the namespace, it gets accessible too -- this seems more like something unexpected to me -- I would expect it to be available only if I did some "import xml.dom" at some point. My problem is that in Pydev, in static analysis, I would only get the tokens available for actually imported modules, but that's not true for Jython, and I'm not sure if the current behaviour in Python was expected. So... which would be the right semantics for this?
the difference in Jython is deliberate. I think the reason was to mimic more the Java style for this, in java fully qualified names always work. In jython importing the top level packages is enough to get a similar effect.
This is unlikely to change for backward compatibility reasons, at least from my POV.
Thanks, Fabio
------------------------------------------------------------------------
Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/pedronis%40strakt.com
- Previous message: [Python-Dev] Import semantics
- Next message: [Python-Dev] Import semantics
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]