J'ai un problème pour récupérer le prototype (signature) d'une fonction.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
def main(arg1, arg2=3, arg5="meuh"):
    pass
 
def main6():
    import inspect
 
    liste = inspect.getargspec(main)
    print liste
Ca me sort :

>>> (['arg1', 'arg2', 'arg5'], None, None, (3, 'meuh'))

Jusque là tout va bien.
Sauf qu'il me faut la signature d'une fonction contenue dans une classe, et apparemment on ne peut pas ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
def main6():
    import Parametres as p
    import inspect
 
    param = p.Parametres()  
    liste = inspect.getargspec(param.getParamVal)
p : module Parametres
param : instance de classe Parametres
getParamVal() : fonction de cette classe

Output de Python:

>>> Traceback (most recent call last):
File "C:\PROGRA~1\lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
exec codeObject in __main__.__dict__
File "P:\travail\test\test2.py", line 159, in ?
File "P:\travail\test\test2.py", line 145, in main6
File "C:\Program Files\lib\inspect.py", line 618, in getargspec
if not isfunction(func): raise TypeError, 'arg is not a Python function'
TypeError: arg is not a Python function


Ai-je commis une erreur quelquepart ?

Merci de me venir en aide !