در پایتون ارسال اشیای تغییرناپذیر (Immutable) به مانند انواع بولین، اعداد، رشته و تاپل به تابع، باعث بروز رفتاری مشابه با شیوه by value می‌شود ولی در مورد ارسال اشیای تغییرپذیر (Mutable) به مانند انواع لیست، دیکشنری و مجموعه اینگونه نخواهد بود.

 

برای جلوگیری از تغییر اشیای تغییرپذیر درون تابع، می‌توان یک کپی از این نوع اشیا را ایجاد و سپس به صورت آرگومان به تابع ارسال کرد:

>>> def f(a):
.     a[0] = 3
.     print(a)
.
>>> b = [1, 2]
>>> f(b[:])      # Pass a copy
[3, 2]
>>> b
[1, 2]

در نمونه کد بالا، از آنجایی که تمام اعضای شی لیست متغیر b تماما از انواع تغییرناپذیر هستند، یک کپی سطحی (Shallow Copy) از شی کفایت می‌کند ولی در حالتی غیر از این می‌بایست یک کپی عمیق (Deep Copy) از شی ارسال گردد.


مشخصات

تبلیغات

محل تبلیغات شما
محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

برترین جستجو ها

آخرین جستجو ها

تحقیق خرید تحقیق خرید مقاله خرید کارآموزی خرید پروژه دانشجو دانلود Ryan picosoft تورهای گردشگری|شرایط تحصیل در کانادا|خدمات سئو و بهینه سازی سایتهای ایترنتی مهرنگ اس ام اس عاشقانه جدید فروشگاه آنلاین فایل