حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش برنامه‌نویسی با پایتون؛ قسمت دوم: حل مسئله

رفع خطای لیست پیش‌فرض در تابع پایتون

۶. تابع‌های پایتون و پروژه گزارش نمره‌ها · 0٪

مقدار پیش‌فرض پارامتر یک بار هنگام تعریف تابع ساخته می‌شه، نه در هر بار اجرای تابع. items=[] ممکن هست فهرست مشترکی بین اجراهای تابع نگه داره. برای «هر بار سبد تازه» این درست نیست.

add_item(item, items=None) رو اصلاح کن: اگه items داده نشد یا None بود، فهرست خالی تازه بساز. اگه فهرست داده شد، اول کپی بگیر. سپس item رو اضافه کن و فهرست جدید برگردان. ورودی نباید تغییر کند.

برای None از is None استفاده کن؛ if not items فهرست خالی رو هم نبودن ورودی حساب می‌کنه و قصد ما رو دقیق بیان نمی‌کنه. نام پارامتر محلی هست، اما محلی بودن نام جلوی تغییر شیء مشترک رو نمی‌گیرد.

بعد از اصلاح دو بار جدا add_item("a") رو اجرا کن؛ هر دو پاسخ فقط ["a"] باشن.

تابع basket_demo آماده هست: دو بار بدون فهرست و یک بار با فهرست فراخوانی می‌کنه، سپس هر سه پاسخ و ورودی رو کنار هم می‌ذاره. فقط add_item رو اصلاح کن. این کار اثر چند بار اجرای پشت سر هم رو هم قابل بررسی می‌کنه.

فعالیت شما

پیش‌فرض مشترک رو حذف کن و همیشه فهرست مستقل برگردان.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

def add_item(item, items=[]):
    items.append(item)
    return items

def basket_demo(item, existing):
    first = add_item(item)
    second = add_item(item)
    with_items = add_item(item, existing)
    return [first, second, with_items, existing]