from calendar import* doesn't import everything

Tim Chase python.list at tim.thechases.com
Tue Apr 24 19:34:00 EDT 2012


On 04/24/12 18:18, Rotwang wrote:
> Sorry if this is a stupid question, but what is up with this:
>
>   >>>  from calendar import*
>   >>>  Calendar
>
> Traceback (most recent call last):
>     File "<pyshell#9>", line 1, in<module>
>       Calendar
> NameError: name 'Calendar' is not defined
>   >>>  from calendar import Calendar
>   >>>  Calendar
> <class 'calendar.Calendar'>

If you view the source, you can see that __all__ is declared 
without containing "Calendar" in it.  So when you do "from 
calendar import *", only the things that are in __all__ are exported.

Now the REASON why "Calendar" is absent from __all__ is a 
question for the developers of the module.  But at least that's 
why Python is masking it from you.

-tkc





More information about the Python-list mailing list