Retrieving Python Keywords

Chris Angelico rosuav at gmail.com
Sat Apr 9 21:57:39 EDT 2011


On Sun, Apr 10, 2011 at 11:28 AM, candide <candide at free.invalid> wrote:
> Python is very good at introspection, so I was wondering if Python (2.7)
> provides any feature to retrieve the list of its keywords (and, as, assert,
> break, ...).

I don't know about any other way, but here's a really REALLY stupid
method. For every possible alphabetic string, attempt to eval() it; if
you get NameError or no error at all, then it's not a keyword.
SyntaxError means it's a keyword.
>>> eval("foo")

Traceback (most recent call last):
 File "<pyshell#3>", line 1, in <module>
 eval("foo")
 File "<string>", line 1, in <module>
NameError: name 'foo' is not defined
>>> eval("lambda")

Traceback (most recent call last):
 File "<pyshell#7>", line 1, in <module>
 eval("lambda")
 File "<string>", line 1
 lambda
 ^
SyntaxError: unexpected EOF while parsing
>>> eval("eval")
<built-in function eval>
Yes, it's stupid. But I'm feeling rather mischievous today. :)
Chris Angelico


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /