I think I found a bug in Python 2.6.4 (in the inspect module)
Daniel Fetchinson
fetchinson at googlemail.com
Tue Dec 29 18:34:54 EST 2009
On 12/29/09, inhahe <inhahe at gmail.com> wrote:
> Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]
> on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import inspect
>>>> def a(b=1): pass
> ...
>>>> inspect.getargvalues(a)
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "C:\Python26\lib\inspect.py", line 816, in getargvalues
> args, varargs, varkw = getargs(frame.f_code)
> AttributeError: 'function' object has no attribute 'f_code'
>>>> dir(a)
> ['__call__', '__class__', '__closure__', '__code__', '__defaults__',
> '__delattr_
> _', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__',
> '__globa
> ls__', '__hash__', '__init__', '__module__', '__name__', '__new__',
> '__reduce__'
> , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
> '__subcla
> sshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict',
> 'func_doc'
> , 'func_globals', 'func_name']
>>>>
>
> So i'm guessing that the attribute has been changed from func_code to
> f_code but the inspect module wasn't updated to reflect that.
Please read the documentation for inspect.getargvalues:
"""
inspect.getargvalues(frame)
Get information about arguments passed into a particular frame. A
tuple of four things is returned: (args, varargs, varkw, locals). 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. locals is
the locals dictionary of the given frame.
Changed in version 2.6: Returns a named tuple ArgInfo(args,
varargs, keywords, locals).
"""
HTH,
Daniel
--
Psss, psss, put it down! - http://www.cafepress.com/putitdown
More information about the Python-list
mailing list