> 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. for example >>> import inspect >>> def foo(a, b=1): ... c = a * b ... >>> inspect.getargs(foo) >>> inspect.getargspec(foo) (['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: raise some_random_value() 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. Diez -- http://mail.python.org/mailman/listinfo/python-list