On Wed, Nov 10, 2010 at 10:23 PM, Michael Foord <fuzzy...@voidspace.org.uk> wrote: > On 09/11/2010 22:09, Nick Coghlan wrote: >> The new unittest package in 2.7 and 3.2 also uses it in the module >> __init__ to present the old "flat" namespace despite become a package >> under the hood. > > Look again. :-) > > Benjamin did the refactoring into a package and he obviously dislikes > "import *" as much as me. If he had used "import *" I would have changed it > anyway, but he didn't. > > We also define a __all__ to make the exported names explicit.
Fair cop :) (and in that particular case, the maintenance burden in being explicit is minimal, since new top-level names in unittest are going to be significantly more rare than new methods on existing unittest classes) Even some of the acceleration modules (such as _hashlib) use approaches that are more explicit than using "import *". The point at least stands for the cases where the pure Python version is largely agnostic as to exactly which names the acceleration module overrides. It's a very, very niche use case though, so the default position of "if you use a star import anywhere other than at the interactive prompt, you're most like wrong to do so" is still a reasonable stance to take :) Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com