def foo(x = [0]): x[0] = x[0] + 1 return x[0] def soo(x = None): if x is None: x = [0] x[0] = x[0] + 1 return x[0]
>>> foo() 1 >>>foo() #See the behavior incremented by one 2 >>>foo([1]) # but here based on given number 2 >>>foo() 3 >>>foo([1]) 2 >>>foo() 4 >>>soo() 1 >>>soo() 1 >>>soo([1]) 2 >>>soo() 1 Why foo() is incremented by 1 always when we are not passing any argument, but this is not happening in soo() case, In which scenario we will use these type of function.' Thanks Jitendra Kumar
-- http://mail.python.org/mailman/listinfo/python-list