Code Explanation:
1. Function Definition
def func(val=[]):
This defines a function named func.
It takes one parameter: val.
The default value for val is an empty list [].
Important Note:
In Python, default argument values (like []) are evaluated only once, at the time the function is defined—not each time it's called.
This means that the same list is shared across multiple calls to the function if no new argument is provided.
2. Append to the List
val.append(1)
This line adds the value 1 to the val list.
If val is the default list, this operation modifies the shared list.
3. Return the List
return val
The modified list val is returned to the caller.
4. First Function Call
print(func())
Calls func() with no argument, so the default list [] is used.
1 is appended → the list becomes [1].
The list [1] is returned and printed.
Output at this point:
[1]
5. Second Function Call
print(func())
Again, func() is called without any argument, so it uses the same list as before (because it's the default list and mutable).
That list is now [1].
Another 1 is appended → the list becomes [1, 1].
The updated list [1, 1] is returned and printed.
Output at this point:
[1, 1]
Final Output
[1]
[1, 1]
.png)

0 Comments:
Post a Comment