Default Value
Gary Herron
gherron at digipen.edu
Wed Jun 19 15:57:48 EDT 2013
On 06/19/2013 12:17 PM, Ahmed Abdulshafy wrote:
> I'm reading the Python.org tutorial right now, and I found this part rather strange and incomprehensible to me>
>
> Important warning: The default value is evaluated only once. This makes a difference when the default is a mutable object such as a list, dictionary, or instances of most classes
This code:
> def f(a, L=[]):
> L.append(a)
> return L
does the same as this code:
M=[]
def f(a, L=M):
L.append(a)
return L
where it's slightly more obvious that the list is created once, and
modified with each call to the function (or rather with each call to the
function that does not supply its own value for L).
Gary Herron
>
> print(f(1))
> print(f(2))
> print(f(3))
>
> This will print
> [1]
> [1, 2]
> [1, 2, 3]
>
> How the list is retained between successive calls? And why?
--
Dr. Gary Herron
Department of Computer Science
DigiPen Institute of Technology
(425) 895-4418
More information about the Python-list
mailing list