שאלת ראיון קלאסית: "מה יהיה הפלט של הקוד הבא?"
python
def add_item(item, lst=[]):
lst.append(item)
return lst
print(add_item(1))
print(add_item(2))
print(add_item(3))אם ענתם [1], [2], [3] - אתם בחברה טובה, אבל אתם טועים. התשובה היא:
txt
[1][1, 2][1, 2, 3]זו הגוטשה הכי מפורסמת ב-Python. ה-list שמשמש כdefault argument נוצר פעם אחת כשהfunction מוגדרת - לא כשהיא נקראת. כל קריאה שמשתמשת ב-default מקבלת אותו list. המשמעות: state משותף בין קריאות - באג ששוכב שם עד שproduction.