Bart van Deenen a écrit :
(ot : please don't top post - corrected)
[EMAIL PROTECTED] wrote:
On Aug 22, 11:13 am, Bart van Deenen
<[EMAIL PROTECTED]> wrote:
# function def X(l=[]): l.append(1) print l
# first call of X X() [1]
#second call of X X() [1, 1]
Where does the list parameter 'l' live between the two successive
calls of X(). Why is it not recreated with an empty list? Is this
correct behavior or is it a Python bug? Does anyone have any
pointers to the language documentation where this behavior is
described?
"Default parameter values are evaluated when the function
definition is executed."
(snip)
> Thanks all for your answers. I figured your solution already, but now
> I understand where the behavior is from. One question remains: can I
> find my parameter 'l' somewhere? I looked in a lot of objects, but
> couldn't find it.
def foo(x="default value for x"):
pass
print foo.func_defaults
=> ('default value for x',)
--
http://mail.python.org/mailman/listinfo/python-list