From: Jeremy Hylton Date: Fri, 27 Jun 2003 18:14:39 +0000 (+0000) Subject: Fix for SF bug 620190: getargspec() doesn't work with methods. X-Git-Tag: v2.3c1~308 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6496788e7a287aedfaa61c0a87feeaeb2fbb06a6;p=python Fix for SF bug 620190: getargspec() doesn't work with methods. --- 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