From 6496788e7a287aedfaa61c0a87feeaeb2fbb06a6 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Fri, 27 Jun 2003 18:14:39 +0000 Subject: [PATCH] Fix for SF bug 620190: getargspec() doesn't work with methods. --- Lib/inspect.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Lib/inspect.py b/Lib/inspect.py index eca5e8ca78..4619edb3c9 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -593,7 +593,9 @@ def getargs(co): Three things are returned: (args, varargs, varkw), where 'args' is a list of argument names (possibly containing nested lists), and 'varargs' and 'varkw' are the names of the * and ** arguments or None.""" - if not iscode(co): raise TypeError, 'arg is not a code object' + + if not iscode(co): + raise TypeError('arg is not a code object') code = co.co_code nargs = co.co_argcount @@ -642,8 +644,13 @@ def getargspec(func): A tuple of four things is returned: (args, varargs, varkw, defaults). 'args' is a list of the argument names (it may contain nested lists). 'varargs' and 'varkw' are the names of the * and ** arguments or None. - 'defaults' is an n-tuple of the default values of the last n arguments.""" - if not isfunction(func): raise TypeError, 'arg is not a Python function' + 'defaults' is an n-tuple of the default values of the last n arguments. + """ + + if ismethod(func): + func = func.im_func + if not isfunction(func): + raise TypeError('arg is not a Python function') args, varargs, varkw = getargs(func.func_code) return args, varargs, varkw, func.func_defaults -- 2.50.1