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?