تفاوت بین کپی سطحی و کپی عمیق در پایتون چیست؟
کپی سطحی و کپی عمیق دو روشی هستند که پایتون می‌تواند از یک شیء موجود کپی ایجاد کند. این دو نوع کپی در نحوه برخورد با اشیاء قابل تغییر مانند لیست‌ها یا دیکشنری‌ها متفاوت هستند.

کپی سطحی یک شیء جدید ایجاد می‌کند، اما فقط از عناصر سطح بالای شیء اصلی کپی می‌گیرد. اگر شیء اصلی حاوی اشیاء قابل تغییر دیگری مانند لیست‌ها یا دیکشنری‌ها باشد، کپی سطحی همچنان به همان زیر-اشیاء ارجاع خواهد داد. این بدان معناست که تغییرات ایجاد شده در زیر-اشیاء در هر دو شیء اصلی یا کپی جدید منعکس خواهد شد.

در مقابل، کپی عمیق نیز یک شیء جدید ایجاد می‌کند، اما همچنین یک کپی کامل از تمام عناصر موجود در شیء اصلی، از جمله هر شیء قابل تغییر تودرتو، ایجاد می‌کند. این بدان معناست که تغییرات در زیر-اشیاء در شیء اصلی یا کپی جدید بر شیء دیگر تأثیر نخواهد گذاشت.

به طور خلاصه، تفاوت بین کپی سطحی و کپی عمیق این است که کپی سطحی فقط عناصر سطح بالای یک شیء را کپی می‌کند، در حالی که کپی عمیق یک کپی کاملاً جداگانه از شیء اصلی، شامل تمام زیر-اشیاء، ایجاد می‌کند.