The inspect.getargspec and getfullargspec functions allow you to extract
the function call signature for Python functions and methods. This allows
you to work out the constructor signature for pure-Python classes, by
calling inspect.getargspec on the __init__ or __new__ method.
>>> import inspect
>>> class X:
... def __init__(self, a, b, *args):
... pass
...
>>> inspect.getargspec(X.__init__)
ArgSpec(args=['self', 'a', 'b'], varargs='args', keywords=None,
defaults=None)
So far so good. But if the __init__ method is inherited directly from a
built-in, getargspec fails:
>>> class Y(int):
... pass
...
>>> inspect.getargspec(Y.__init__)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/inspect.py", line 794, in getargspec
getfullargspec(func)
File "/usr/local/lib/python3.2/inspect.py", line 821, in getfullargspec
raise TypeError('{!r} is not a Python function'.format(func))
TypeError: <slot wrapper '__init__' of 'object' objects> is not a Python
function
How do I programmatically get the argument spec of built-in types'
__init__ or __new__ methods?
--
Steven
--
http://mail.python.org/mailman/listinfo/python-list