En Sat, 18 Oct 2008 16:03:19 -0300, Brendan Miller <[EMAIL PROTECTED]>
escribió:
How would I implement something equivalent to java's package private in
python?
Say if I have
package/__init__.py
package/utility_module.py
and utility_module.py is an implementation detail subject to change.
Is there some way to use __init__.py to hide modules that I don't want
clients to see? Or is the best practice just to name the module you don't
want clients to use _utility_module and have it private by convention?
If you don't import utility_module in __init__ (or delete the name after
using it), it won't show up if someone does "from package import *", nor
in dir(package). Plus if you don't menction it in the docs, the only way
to discover it would be to look at the directory contents - to "peek the
implementation", I'd say.
You could always name it _utility_module.py if you want to make perfectly
clear that it's for internal use only, but I've seldom seen such module
names.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list