On Sun, Apr 10, 2011 at 11:28 AM, candide <candide@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 -- http://mail.python.org/mailman/listinfo/python-list