source code of a function object
anton muhin
antonmuhin.REMOVE.ME.FOR.REAL.MAIL at rambler.ru
Thu Nov 13 10:25:14 EST 2003
Fernando Rodriguez wrote:
> Hi,
>
> Is ti possible to get the source code of a given function object? O:-)
>
> TIA
I'm not an expert, but I'd say that mostly yes, however:
def foo():
pass
bar_code_block = compile('def bar(): pass', '<string>', 'exec')
exec bar_code_block
import inspect
assert 'foo' in locals()
print inspect.getsource(foo)
assert 'bar' in locals()
print inspect.getsource(bar)
Python2.3:
def foo():
pass
Traceback (most recent call last):
File "source.py", line 13, in ?
print inspect.getsource(bar)
File "D:\Python23\lib\inspect.py", line 549, in getsource
lines, lnum = getsourcelines(object)
File "D:\Python23\lib\inspect.py", line 538, in getsourcelines
lines, lnum = findsource(object)
File "D:\Python23\lib\inspect.py", line 408, in findsource
raise IOError('could not get source code')
IOError: could not get source code
Therefore, I'd suggest that you can get source code of functions that
are not created with eval/exec etc.
of course, you cannot get source code of C functions (e.g. most of
builtins, I suppose).
regards,
anton.
More information about the Python-list
mailing list