Confused about namespaces
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Sat Nov 19 06:08:27 EST 2005
KvS a écrit :
> Ok, makes sense but didn't seem "natural" to me,
It will seem more natural if you understand that modules should be
modulars (ie: low coupling, high cohesion). A module should *never*
bother about no rely upon other modules being imported by the module it
imports itself. Err, not quite clear... Let's rephrase it : a module
should only used symbols it defines itself or that it *explicitely*
imports from other modules.
> although it is an
> obvious consequence of what you just pointed out, namely that modules
> are evaluated in their own namespace, something to keep in mind... On
> the other hand it does apparently work recursively "the other way
> around" since I didn't explicitly import wx in main.py but only
> indirect via importing GUIclasses in which wx is imported right?
You've already got technical answers to this - please carefully (re)read
Alex Martelli's post.
Now about coding style: this is *very* Bad Style(tm). Your main module
imports should look like this:
import wx
# import settings -> we don't use the settings module here
from GUIclasses import KFrame
(...)
and the GUIclasses module's import :
import wx
import wx.lib.mixins.listctrl as listmix
import settings -> *here* we use the settings module
(...)
Python's philosophy is to favour readability.
Talking about imports, take time to open your Python interactive shell
and type "import this" !-)
More information about the Python-list
mailing list