Accessing AST at runtime

Ramchandra Apte maniandram01 at gmail.com
Sat Sep 1 22:48:51 EDT 2012


On Sunday, 2 September 2012 08:00:59 UTC+5:30, (unknown)  wrote:
> Hi,
> 
> 
> 
> I would like to access the AST of a python object at runtime. I mean, if I have this:
> 
> 
> 
> def f(x): return x*x/2
> 
> 
> 
> Is there any way to interrogate the object f to find out the AST of the expression x*x/2 ? Of course if the definition of f were in a file, I could use the ast module to parse it; but what I want is to do this from within the code.
> 
> 
> 
> The closest thing I was able to find was f.__code__, and more specifically f.__code__.co_code, but that is a byte-string which seems to be the bytecode (?) for the function.
> 
> 
> 
> This may not be possible at all; maybe after the def statement is processed by the Python interpreter the AST information is discarded. But I wanted to check here if someone knows one way or another.
> 
> 
> 
> Many thanks.

You could scan the text for code and then ast.parse() it.
Then you know how...



More information about the Python-list mailing list