Detecting arguments of a function - possible?
Diez B. Roggisch
deets at nospam.web.de
Fri Mar 17 15:14:10 CET 2006
> I am trying to write a tool to examine a function (I'd like it
> to work with pyc files only). So here are a few questions I
> have; any pointers would be very welcome.
Try playing around with reflection - the function-code reveals some
properties of the code.
>>> import inspect
>>> def foo(a, b=1):
... c = a * b
(['a', 'b'], None, None, (1,))
> Can I determine the number of arguments required of a function?
> Is there a way to detect is the function will throw an exception
> (I don't care under what conditions just that it is possible)?
No. You can disassemble a function and see if it contains a raise-statement.
But as it is perfectly legal to say:
you have absolutely no idea what will be raised. And of course every call to
another function and even some bytecodes (like division, which may result
in ZeroDivsionError) can raise an exception.
More information about the Python-list