[Python-Dev] Using defaultdict as globals/locals for eval() (original) (raw)

Neil Schemenauer nas@python.ca
Fri, 25 Oct 2002 10:01:29 -0700


Martin v. Loewis wrote:

Geert Jansen <geertj@boskant.nl> writes: > Or altenately, is there a way I can find out which variables are > used inside a compiled code block so I can initialize non-specified > variables? I have a vague memory that the nested scopes feature has > to determine at compile time which variables are being used in a > code block.

Sure: you can parse the code, build an AST tuple (or list), and traverse that.

You might want to look at the ptl_compile module in Quixote for some ideas. The AST from the 'compiler' package is much nicer than the parse tree from the 'parser' module.

Neil