ken at seehart.com
Sun Apr 24 17:44:58 EDT 2011
Oops, I must correct myself. Please ignore my previous post.
As Daniel points out, Writable is specified in the Python 3
documentation. Apparently I was reading the documentation with only my
right eye open, and the Writable tag fell on my blind spot.
I concur that this unambiguously implies that the attribute should work
as advertised after being written.
This is not a bug in Jython. As Daniel points out the attribute was
renamed from func_defaults to __defaults__ in python 3.
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_24
Type "help", "copyright", "credits" or "license" for more information.
>>> def foo(x=4):
... print x
>>> foo.func_defaults = (3,)
So it works correctly in Jython 2.x.
Conclusion: Not an implementation detail, and safe to use.
On 4/24/2011 10:18 AM, Daniel Kluev wrote:
> Callable types
> Special attributes:
> __defaults__ A tuple containing default argument values for those
> arguments that have defaults, or None if no arguments have a default
> value Writable
> I don't see any 'implementation detail' mark there, and 'Writable'
> IMHO means it can be used.
> On Mon, Apr 25, 2011 at 4:02 AM, Benjamin Kaplan
> <benjamin.kaplan at case.edu> wrote:
>> Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)
> In 2.x it was func_defaults (http://docs.python.org/reference/datamodel.html)
> __defaults__ is 3.x feature
More information about the Python-list