COMPLEX DATA TYPES IN PYTHON: SHALLOW & DEEP COPIES IN PYTHON EĞİTİMİ

Kopyalama hatalarını kökünden çözün

Referans ve kimlik, mutable-immutable farkı, shallow copy, deepcopy, özel kopyalama ve varsayılan argüman tuzağı

Python'da referans modeli, mutable-immutable farkı, shallow copy, deepcopy, özel kopyalama ve varsayılan argüman tuzaklarını örneklerle ele alan eğitim.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Python kopyalama mekanizmaları ve referans modeli

Eğitim, Python nesne modelini kopyalama açısından ele alır: değişkenlerin nesneye etiket olması, id, is ve == farkı, mutable ve immutable tipler, fonksiyon argümanlarının referansla geçmesi, varsayılan argüman tuzağı, copy.copy ile shallow copy, iç içe yapılarda paylaşılan nesne sorunu, copy.deepcopy, __copy__ ve __deepcopy__ ile özel kopyalama.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Referans Modeli ve Shallow Copy; 2. gün Deep Copy ve Uygulamalar. Her modül uygulamalı alıştırmalarla pekiştirilir.

Seviye

Orta Seviye — Python'da referans, değişebilirlik, shallow ve deep copy mekanizmalarını tuzaklarıyla birlikte ele alır.

Öğrenme Metodu

Her kavram Python Tutor benzeri bellek diyagramlarıyla ve id() çıktılarıyla görselleştirilir; hata üreten kod parçaları birlikte debug edilir.

Neden Bu Eğitim?

🎯Gizli hataları görün

Bir listeyi değiştirince diğerinin de değişmesi gibi hataların nedenini kavrarsınız.

🛠️Doğru kopya seçimi

Shallow, deep ve dataclasses.replace arasında maliyeti bilerek seçim yaparsınız.

📈Daha temiz fonksiyonlar

Yan etkisiz fonksiyon tasarımıyla kodunuzu öngörülebilir kılarsınız.

Anahtar Konular

python shallow copypython deep copycopy.deepcopypython referansmutable immutablepython kopyalamaid is farkıvarsayılan argüman tuzağıpython liste kopyalamapython eğitimi
“Kopyaladığınızı sanmak, kopyalamak değildir.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Temel Python

Değişken, fonksiyon, liste ve sözlük kullanımına dair başlangıç düzeyinde Python bilgisi beklenir.

2
Geliştirme ortamı

Python 3.10+ ve VS Code ya da Jupyter Notebook kurulu bir bilgisayar gereklidir.

3
Komut satırı

pip ile paket kurma ve sanal ortam (venv) oluşturma konusunda temel rahatlık faydalıdır.

4
Ağ bağlantısı

Örnek veri setleri ve paket kurulumları için internet erişimi olan bir ortam önerilir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı referans modelini açıklar ve shallow copy davranışını sınar.
Modül 1
Atama, Referans ve Kimlik
  • Python'da değişkenin nesneye etiket olması (name binding)
  • id(), is ve == farkı
  • Mutable ve immutable nesnelerde atamanın sonuçları
  • Fonksiyon argümanlarının referansla geçmesi ve yan etkiler
  • Varsayılan argüman tuzağı: def f(x, lst=[])
  • Küçük tamsayı ve string interning davranışı
Modül 2
Liste Temelleri
  • Liste oluşturma, indeksleme ve negatif indeksler
  • Dilimleme (slicing) sözdizimi [baş:son:adım] ve ters çevirme [::-1]
  • append, extend, insert ile ekleme farkları
  • remove, pop, del ve clear ile silme
  • index, count, in ile arama ve sayma
  • Listelerin değiştirilebilir (mutable) oluşu ve fonksiyonlara referansla geçmesi
Modül 3
Sözlük (dict) Temelleri
  • Anahtar-değer yapısı, süslü parantez ve dict() ile oluşturma
  • d[k], get(k, varsayılan) ve KeyError yönetimi
  • Ekleme, güncelleme, update(), pop() ve del
  • keys(), values(), items() görünüm nesneleri
  • Python 3.7+ ekleme sırasının korunması
  • Hashable anahtar kuralı: str, int, tuple olur; list olmaz
Modül 4
Shallow Copy
  • copy.copy(), list.copy(), dict.copy() ve dilimleme [:]
  • Shallow copy'nin yalnızca üst seviyeyi kopyalaması
  • İç içe listede iç nesnelerin paylaşılması ve beklenmedik değişim
  • list(x), dict(x), set(x) kurucularıyla kopyalama
  • Immutable öğelerde shallow copy'nin yeterli olduğu durumlar
  • Kopya ile orijinalin id karşılaştırmasıyla doğrulama
Günün hedefiKatılımcı deepcopy kullanır, özel kopyalama yazar ve hataları testlerle yakalar.
Modül 1
Deep Copy
  • copy.deepcopy() ile özyinelemeli tam kopya
  • Döngüsel referanslarda memo sözlüğünün rolü
  • __copy__ ve __deepcopy__ ile sınıfa özel kopyalama
  • Deep copy maliyeti: büyük yapılarda bellek ve süre
  • Alternatifler: JSON serileştirme, pickle ve dataclasses.replace
  • Sınıf örneklerinde kopya hatalarını pytest ile yakalama
Modül 2
Liste ve Tuple Performansı
  • sys.getsizeof ile liste ve tuple bellek karşılaştırması
  • timeit ile append, insert(0) ve deque işlemlerinin süresi
  • collections.deque ile baştan/sondan O(1) ekleme-çıkarma
  • array modülü ve numpy dizisi ile homojen veri tutma
  • Liste içinde arama maliyeti O(n) ve bisect ile sıralı arama
  • Yaygın tuzaklar: [[0]*3]*3 çoğaltma hatası ve liste üzerinde dolaşırken silme
Modül 3
pytest Temelleri
  • Test keşfi, assert yeniden yazımı ve çıktıyı okuma
  • Fixture'lar, scope (function/module/session) ve conftest.py
  • parametrize ile veri güdümlü testler
  • pytest.raises ile istisna beklentisi
  • Marker'lar: skip, xfail, özel işaretler
  • tmp_path, monkeypatch ve capsys yerleşik fixture'ları
Modül 4
Hash Mantığı ve Performans
  • hash() fonksiyonu ve __hash__/__eq__ sözleşmesi
  • Set ve dict üyelik testinin ortalama O(1) olması
  • Liste ile set üyelik testi süre karşılaştırması (timeit)
  • Hash çakışması ve dict açık adresleme mantığına genel bakış
  • Kendi sınıfımızı set içinde kullanmak: __eq__ ve __hash__ yazımı
  • İki büyük dosyanın satırlarını set farkıyla karşılaştırma

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Referans Anlayışı

Atama, kimlik ve değişebilirlik kavramlarını ayırt ederek kaynaklı hataları önleyebilirsiniz

🔧
Liste Kullanımı

Liste indeksleme, dilimleme ve ekleme-silme işlemlerini hatasız uygulayabilirsiniz

📊
Sözlük Kullanımı

Sözlük oluşturma, get ile güvenli erişim ve güncelleme işlemlerini yapabilirsiniz

🧩
Shallow Copy

Shallow copy sınırlarını bilerek iç içe yapılarda paylaşılan nesne hatalarını yakalayabilirsiniz

🚀
Deep Copy

deepcopy ve özel kopyalama yöntemleriyle bağımsız veri kopyaları üretebilirsiniz

🔍
Yapı Performansı

Liste, tuple ve deque seçimini bellek ve süre ölçümleriyle gerekçelendirebilirsiniz

🛡️
pytest Ustalığı

Fixture, parametrize ve marker ile bakımı kolay test paketleri yazabilirsiniz

📌
Hash ve Hız

Hash mantığını anlayıp set ve dict aramalarının neden hızlı olduğunu ölçerek gösterebilirsiniz

Kimler İçin Uygundur?

  • Listeler ve sözlüklerle çalışırken beklenmedik değişikliklerle karşılaşan Python kullanıcıları
  • veri analistleri
  • yazılımcılar

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Listeler ve sözlüklerle çalışırken beklenmedik değişikliklerle karşılaşan Python kullanıcıları, veri analistleri ve yazılımcılar.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası almaya hak kazanır; sertifika DVA'nın kendi katılım ve başarı belgesidir.
Eğitim için hangi yazılımlar gereklidir?
Python 3.10 veya üzeri, bir kod editörü (VS Code ya da PyCharm) ve eğitimin konusuna göre listelenen paketler yeterlidir; kurulum adımları ilk oturumda birlikte kontrol edilir.
Neden liste kopyalarken hata alıyorum?
Atama kopyalama değil referans paylaşmadır; eğitimde liste[:], copy.copy ve deepcopy farkları adım adım gösterilir.
Deep copy her zaman gerekli mi?
Hayır; maliyet ve alternatifler (dataclasses.replace, JSON serileştirme) karşılaştırılarak ölçütler verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Complex Data Types in Python: Shallow & Deep Copies in Pytho Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
KonuPython
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

PythonBuilding API Clients and Servers with Python (AADP) Eğitimi
Yazılım Geliştirme Eğitimleri

Building API Clients and Servers with Python (AADP) Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Python ile API istemcisi ve sunucusu geliştirme eğitimi: requests, httpx, FastAPI, OAuth 2.0, JWT, webhook, WebSocket, sözleşme testi ve Docker dağıtımı.

Detayları Gör →
PythonBuilding APIs with Python Fast Track (PY201FT) Eğitimi
Yazılım Geliştirme Eğitimleri

Building APIs with Python Fast Track (PY201FT) Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Python ile API geliştirme hızlandırılmış 2 günlük eğitim: REST temelleri, FastAPI, Flask, Pydantic, SQLAlchemy, JWT, pytest ve Docker ile çalışan API projesi.

Detayları Gör →
PythonBuilding Web Apps Using Django: Building a Basic Website Eğitimi
Yazılım Geliştirme Eğitimleri

Building Web Apps Using Django: Building a Basic Website Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Django ile temel web sitesi geliştirme eğitimi: proje yapısı, URL yönlendirme, view, şablon kalıtımı, statik dosyalar, admin paneli ve temel test.

Detayları Gör →
PythonBuilding Web Apps Using Django: Generic Views Eğitimi
Yazılım Geliştirme Eğitimleri

Building Web Apps Using Django: Generic Views Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Django Generic Views eğitimi: ListView, DetailView, CreateView, UpdateView, DeleteView, mixin, sayfalama ve FBV-CBV karşılaştırması ile uygulamalı CRUD geliştir

Detayları Gör →
PythonBuilding Web Apps Using Django: Implementing Login & Logout Eğitimi
Yazılım Geliştirme Eğitimleri

Building Web Apps Using Django: Implementing Login & Logout Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Django login ve logout eğitimi: authenticate, LoginView, LogoutView, login_required, oturum yönetimi, parola sıfırlama, özel kullanıcı modeli ve izinler.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn