function object.func_default off the console
Peter Otten
__peter__ at web.de
Wed Apr 25 02:56:24 EDT 2007
Aaron Brady wrote:
>>>> f.func_defaults[0]
> [2, 3]
>>>> f.func_defaults[0]+=[4]
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: 'tuple' object does not support item assignment
>>>> f.func_defaults[0]
> [2, 3, 4]
>
> V. interesting. Operation succeeds but with a throw. Er, raise.
This is not specific to func_defaults:
>>> t = ([1],)
>>> t[0] += [2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> t
([1, 2],)
t[0] += [2]
is resolved to
t.__setitem__(t[0].__iadd__([2]))
where list.__iadd__() succeeds but __setitem__() fails (because tuples don't
have that method).
Peter
More information about the Python-list
mailing list