Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Question 4 of 10 · Functions and Lambda Expressions
Interview question

What is the mutable default argument trap? Mutable default argument trap क्या है?

Answer
# WRONG - shared default!
def append_to_list(item, my_list=[]):
    my_list.append(item)
    return my_list

print(append_to_list(1))  # [1]
print(append_to_list(2))  # [1, 2] NOT [2]!

# CORRECT - use None
def append_correct(item, my_list=None):
    if my_list is None:
        my_list = []
    my_list.append(item)
    return my_list
# Default [] एक बार create होता है!
my_list.append(item)  # shared!

# Solution: None use करो
if my_list is None:
    my_list = []

Was this answer clear?