On 7/12/19 11:39 AM, Alan Gauld via Tutor wrote:
> On 12/07/2019 15:24, Gursimran Maken wrote:
>
>> Can someone please explain me the reason for below output.
>
> You've been bitten by one of the most common gotchas in Python :-)
>
>> def fun(n,li = []):
>> a = list(range(5))
>> li.appen
If I remember how that works right, there is a single empty list that is
created and used for all the calls that use the default argument, and then your
function modifies that empty list so it is no longer empty, and that modified
list is used on future calls. (Not good to use a mutable as a def
On 12/07/2019 15:24, Gursimran Maken wrote:
> Can someone please explain me the reason for below output.
You've been bitten by one of the most common gotchas in Python :-)
> def fun(n,li = []):
> a = list(range(5))
> li.append(a)
> print(li)
>
> fun(4)
> fun(5,[7,8,9])
> fun(4,[7,8,