🔹 خیلی از بچهها موقع تعریف تابع، از لیست یا دیکشنری به عنوان آرگومان پیشفرض استفاده میکنن که باعث میشه باگهای عجیب و غریبی توی پروژه پیش بیاد.
🔹داستان اینه: پایتون آرگومان پیشفرض رو فقط یکبار (موقع تعریف تابع) میسازه، نه هر بار که تابع رو صدا میزنی. نتیجهش این میشه که لیستِ شما بین تمام فراخوانیها مشترک میمونه!
🔹 کد غلط (باگدار):
def add_item(val, my_list=[]):
my_list.append(val)
return my_list
print(add_item(1)) # خروجی: [1]
print(add_item(2)) # خروجی: [1, 2] !!!
🔹کد درست (پایتونیک):
همیشه از
None استفاده کن و مقداردهی رو داخل تابع انجام بده:def add_item(val, my_list=None):
if my_list is None:
my_list = []
my_list.append(val)
return my_list
print(add_item(1)) # خروجی: [1]
print(add_item(2)) # خروجی: [2]
🔹 این یه نکتهی ساده ولی حیاتیه که کدت رو از یه کدِ آماتوری به یه کدِ حرفهای تبدیل میکنه.
🐍 @python_rd