Question 20: Understanding Default Mutable Arguments in Python Functions

This quiz question tests your understanding of how default mutable arguments in Python functions work.

This concept is crucial for avoiding unexpected behavior in Python programs.

Question: Default Mutable Arguments in Python

What will be the output of the following Python code and why?

def func(x, y=[]):
    y.append(x)
    return y

print(func(1))
print(func(2))
print(func(3, []))
print(func(4))
















Answer: B

Explanation:

When you call func(4), it again uses the default list y, which is still [1, 2]. Thus, 4 is appended to y, making y = [1, 2, 4].

When you call func(1), it uses the default value for y, which is an empty list []. The function appends 1 to y, making y = [1].

When you call func(2), it again uses the default list y, which is now [1] because the default argument y is mutable and retains its state across function calls. Thus, 2 is appended to y, making y = [1, 2].

When you call func(3, []), you explicitly provide a new empty list for y, so it appends 3 to this new list, resulting in y = [3].

Leave a Reply