[Python-Dev] Keyword module cruft question
Guido van Rossum
guido@python.org
Tue, 29 Oct 2002 17:41:57 -0500
> I'm working on an article about Python introspection and came across
> something I consider a blemish. I thought I'd ask about it here and
> see how you folks feel about it. BTW, I'm looking at Python 2.2.2 on
> Linux.
>
> If you look at the keyword module, you'll see that it has a keyword
> attribute:
>
> >>> import keyword
> >>> dir(keyword)
> ['__all__', '__builtins__', '__doc__', '__file__', '__name__', 'iskeyword',
> 'keyword', 'kwdict', 'kwlist', 'main']
> >>> keyword.keyword
> 'yield'
> >>>
>
> Basically, the keyword attribute is just the last value from this
> process:
>
> kwdict = {}
> for keyword in kwlist:
> kwdict[keyword] = 1
>
> So it is a bit of extraneous cruft, I believe. No big deal, and
> nothing that a
>
> del keyword
>
> couldn't fix. But it does look sloppy when you are writing about
> introspection and you see an attribute that has no real value. I
> wish it weren't there, as I'd rather not have to explain it. But it
> got me thinking whether other modules in the standard library have
> this issue, and whether this is something that should be cleaned
> up. Thoughts?
Lots of modules have attributes that are cruft according to this
definition. I personally see no reason to get rid of all these --
they're harmless and "from M import *" doesn't import them. Feel free
to hold your own code to a higher standard though. ;-)
--Guido van Rossum (home page: http://www.python.org/~guido/)