Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

  1. Ana sayfa
  2. Blog
  3. Yazılım Geliştirme

Yazılım Geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Gerçek bir şey oluşturarak nesne yönelimli Python’u öğrenin. Sınıflar oluşturun, self ve __init__’i anlayın, kalıtımla davranışı paylaşın, özelliklerle verileri koruyun ve bir sınıfın ne zaman yanlış araç olduğunu öğrenin.

10 dk okuma
Python sınıfları ve nesneleri: Gerçek örneklerle OOP eğitimi

Önemli noktalar

  • Sınıf bir plandır ve nesne de ondan oluşturulan bir şeydir.
  • __init__ her yeni nesneyi kurar ve self o nesneyi ifade eder.
  • Sınıfta ayarlanan özellikler paylaşılır. self‘de ayarlanan nitelikler bir nesneye aittir.
  • Veri tutma sınıfları için @dataclass‘i kullanın ve tutulacak durum olmadığında basit işlevleri tercih edin.

Betik büyüdükçe, aynı değişken grubunu işlevler arasında geçirmeye başlarsınız ve hangi verinin hangi mantığa ait olduğunu söylemek zorlaşır. Python sınıfları ve nesneleri, verileri ve davranışı tek bir birimde toplayarak bu sorunu çözer.

Bu derste adım adım küçük bir banka hesabı oluşturacağız ve her bir OOP fikrini yalnızca bir sorunu çözdüğünde ekleyeceğiz. Her örneği Python 3.13’te çalıştırdık ve gösterilen çıktı bu çalıştırmadan geliyor. Dilde yeniyseniz öncelikle Yeni başlayanlar için Python eğitimimizi okuyun.

Sınıflar ve nesneler nelerdir?

Sınıf bir şeyin ne olduğunu ve neler yapabileceğini açıklar. Örnek olarak da adlandırılan bir nesne, bu açıklamadan oluşturulan belirli bir nesnedir. “Hesap” bir sınıftır, Asha’nın hesabı ve Ben’in hesabı ise iki nesnedir.

Dönem Anlamı Örnek
Sınıf Plan Hesap
Nesne veya örnek Ondan yapılmış bir şey a = Hesap("Asha")
Özellik Nesneye ilişkin veriler a.balance
Yöntem Sınıfta bir fonksiyon a.deposit(50)

Başından beri nesneleri kullanıyorsun. Python’da dizeler, listeler ve hatta işlevler nesnelerdir, bu yüzden "hello".upper() yazabilirsiniz.

İlk dersiniz

class Account:
    def __init__(self, owner, balance=0):
        self.owner = owner
        self.balance = balance

    def deposit(self, amount):
        if amount <= 0:
            raise ValueError("amount must be positive")
        self.balance += amount
        return self.balance

a = Account("Asha", 100)
b = Account("Ben")

a.deposit(50)
print(a.balance, b.balance)

# 150 0

__init__ bir nesne oluşturduğunuzda otomatik olarak çalışır ve başlangıç durumunu ayarlar. a‘ye para yatırmak b‘e dokunmadı çünkü her nesnenin kendi verisi vardır. Yöntemin aynı zamanda teraziyi kötü bir değerden koruduğuna da dikkat edin. Python istisna yönetimi kılavuzumuz raise‘i daha derinlemesine açıklıyor.

Benlik nedir?

self basitçe bir yöntemin üzerinde çalıştığı nesnedir. a.deposit(50) yazdığınızda Python, nesneyi ilk argüman olarak ileterek etkili bir şekilde Account.deposit(a, 50)‘ü çağırır. Bir yöntem tanımı bu şekilde her nesneye hizmet edebilir.

self adı, bir anahtar kelimeden ziyade güçlü bir kuraldır, ancak her zaman onu kullanın. Bunu bir yöntem tanımında unutmak, başlangıç ​​seviyesindeki en yaygın hatadır ve argüman sayısı hakkında kafa karıştırıcı bir mesaja neden olur.

Sınıf nitelikleri ve örnek nitelikleri

Doğrudan sınıf gövdesinde ayarlanan bir nitelik tüm nesneler tarafından paylaşılır. self‘deki bir küme yalnızca o nesneye aittir. Bu örnek, aramaların nasıl davrandığını gösterir:

class Account:
    interest_rate = 0.04    # class attribute

    def __init__(self, owner, balance=0):
        self.owner = owner  # instance attribute
        self.balance = balance

a = Account("Asha", 100)
b = Account("Ben")
print(a.interest_rate, b.interest_rate)   # 0.04 0.04

Account.interest_rate = 0.05
print(a.interest_rate, b.interest_rate)   # 0.05 0.05

a.interest_rate = 0.09
print(a.interest_rate, b.interest_rate, Account.interest_rate)
# 0.09 0.05 0.05

Bu son cümle insanları şaşırtıyor. a aracılığıyla atama, paylaşılan değeri değiştirmedi. a üzerinde sınıf birincisini gizleyen yeni bir örnek niteliği yarattı. Python önce nesneye, sonra sınıfa bakar.

Özel (dunder) yöntemler

Çift alt çizgi içeren yöntemler, nesnelerinizin Python’un yerleşik özellikleriyle çalışmasına olanak tanır. Bunlar olmadan, bir hesabın yazdırılması işe yaramaz bir hafıza adresi gösterir. İki eklemek ona okunabilir bir form verir:

    def __str__(self):
        return f"{self.owner}: {self.balance}"

    def __repr__(self):
        return f"Account({self.owner!r}, {self.balance})"

print(a)        # Asha: 150
print([a, b])   # [Account('Asha', 150), Account('Ben', 0)]
Yöntem Tarafından tetiklendi
__init__ Bir nesne oluşturma
__str__ print(obj), str(obj)
__repr__ Hata ayıklama veya listede gösterme
__eq__ bir == b
__len__ len(obj)
__add__ a + b

Miras

Kalıtım, yeni bir sınıfın mevcut olanı yeniden kullanmasına ve yalnızca farklı olanı değiştirmesine olanak tanır. Burada Savings, ekstra ayarı olan bir Account‘dir:

class Savings(Account):
    def __init__(self, owner, balance=0, limit=3):
        super().__init__(owner, balance)
        self.limit = limit

    def __str__(self):
        return f"{super().__str__()} (savings)"

s = Savings("Chitra", 500)
s.deposit(100)
print(s, isinstance(s, Account), s.limit)

# Chitra: 600 (savings) True 3

super() ebeveyn sürümünü çağırır, dolayısıyla kurulum mantığı tekrarlanmaz. deposit olduğu gibi devralındı ​​ve __str__ bir etiket eklemek için geçersiz kılındı. Kalıtımı yalnızca gerçek bir “birdir” ilişkisi için kullanın. Bir sınıfın yalnızca bir şeye ihtiyacı varsa, örneğin bir arabanın motora ihtiyacı varsa, ona bu nesneyi bir özellik olarak verin. Bu, kompozisyon olarak bilinir ve genellikle derin kalıtım zincirlerinden daha esnektir.

Polimorfizm

Polimorfizm, farklı nesnelerin aynı yöntem çağrısına kendi yöntemleriyle yanıt verebilmesi anlamına gelir. Çağrı kodunun tam türünü bilmesi gerekmez:

class Square:
    def __init__(self, side):
        self.side = side
    def area(self):
        return self.side ** 2

class Circle:
    def __init__(self, radius):
        self.radius = radius
    def area(self):
        return round(3.14159 * self.radius ** 2, 2)

for shape in [Square(3), Circle(2)]:
    print(type(shape).__name__, shape.area())

# Square 9
# Circle 12.57

Bu iki sınıf bir ebeveyni bile paylaşmıyor. Python yalnızca nesnenin, ördek yazma olarak bilinen bir yaklaşım olan bir area yöntemine sahip olmasına önem verir. Daha sonra bir Triangle eklemek döngüde herhangi bir değişiklik yapılmasını gerektirmez.

Kapsülleme ve özellikleri

Python’un gerçekten özel nitelikleri yoktur ve bunun yerine geleneklere dayanır. _price‘deki gibi tek bir alt çizgi, diğer geliştiricilere “bu dahili bir durum, lütfen dokunmayın” der. Değerleri ayarlandığında kontrol etmek için dışarıdan düz bir nitelik gibi görünen bir özellik kullanın:

class Product:
    def __init__(self, price):
        self.price = price

    @property
    def price(self):
        return self._price

    @price.setter
    def price(self, value):
        if value < 0:
            raise ValueError("price cannot be negative")
        self._price = value

p = Product(100)
p.price = 150
print(p.price)      # 150
p.price = -5        # ValueError: price cannot be negative

Bu, düz bir öznitelikle başlayabileceğiniz ve daha sonra sınıfı kullanan herhangi bir kodu değiştirmeden doğrulama ekleyebileceğiniz anlamına gelir. Bu nedenle, Java’da yaptığınız gibi, alışkanlıktan dolayı get_price() ve set_price() yöntemlerini yazmayın. Buradaki @ sözdizimi bir dekoratördür ve bunu Python dekoratörlerinin açıklaması bölümünde açıklıyoruz.

Sınıf yöntemleri ve statik yöntemler

class Temperature:
    def __init__(self, celsius):
        self.celsius = celsius

    @classmethod
    def from_fahrenheit(cls, f):
        return cls(round((f - 32) * 5 / 9, 1))

    @staticmethod
    def is_freezing(celsius):
        return celsius <= 0

Temperature.from_fahrenheit(212).celsius   # 100.0
Temperature.is_freezing(-3)                # True
Tür İlk argüman Bunun için kullan
Örnek yöntemi öz Bir nesnenin verileriyle çalışma
@classmethod cls Alternatif kurucular
@staticmethod Yok Sınıfla ilgili yardımcılar

Veri sınıfları

Bir sınıfta çoğunlukla veri tutulduğunda, __init__, __repr__ ve __eq__‘ün elle yazılması sıkıcıdır. @dataclass bunları tür açıklamalarından oluşturur:

from dataclasses import dataclass, field

@dataclass
class Item:
    name: str
    price: int
    tags: list = field(default_factory=list)

print(Item("Pen", 10))
print(Item("Pen", 10) == Item("Pen", 10))

# Item(name='Pen', price=10, tags=[])
# True

İpucu: Her şeyin bir sınıfa ihtiyacı yoktur. Durumu yoksa ve yalnızca tek bir davranışı varsa, düz işlev daha basittir. Basit aramalar için bir sözlük yeterli olabilir. Veriler ve onu koruyan kurallar açıkça birbirine ait olduğunda bir sınıfa ulaşın.

Yaygın hatalar

Değişken bir sınıf niteliği kullanma

Bu klasik bir hatadır. Liste sınıfta tanımlıdır, dolayısıyla tüm alışveriş sepetleri onu paylaşır:

class Cart:
    items = []            # shared by every cart!

    def add(self, item):
        self.items.append(item)

c1, c2 = Cart(), Cart()
c1.add("pen")
print(c2.items)

# ['pen']

Bunu __init__‘de self.items = [] ile oluşturun, böylece her nesne kendi listesini alır.

Diğer yaygın hatalar

  • self‘yi unutmak. Yöntemlerin içine balance değil, self.balance yazın.
  • Unutmak super().__init__(). Çocuk daha sonra ebeveyn tarafından belirlenen nitelikleri kaçırır.
  • Devasa sınıflar oluşturmak. Her şeyi yapan bir sınıfın test edilmesi zordur. Sorumluluğa göre bölün.
  • Derin kalıtım. İki seviye genellikle bol miktarda bulunur ve kompozisyon genellikle daha nettir.
  • Test yazmamak. pytest eğiticimizin küçük bir araba kullanarak gösterdiği gibi, kurallı sınıfların test edilmesi kolaydır.

Son sözler

Nesne yönelimli Python, verileri onu koruyan davranışla gruplandırmaya gelir. __init__, yöntemler ve __str__ ile başlayın, ardından çözecekleri bir sorunla karşılaştığınızda kalıtım ve özellikleri ekleyin. Bir sonraki adım olarak, aynı birkaç değişkeni her yere ileten bir komut dosyası alın ve bunları küçük bir sınıfa dönüştürün.

Sık sorulan sorular

Bir sınıf ile bir nesne arasındaki fark nedir?

Sınıf, tanım veya plandır. Bir nesne, kendi verileriyle ondan oluşturulan belirli bir örnektir. Bir sınıf birçok nesne yaratabilir.

__init__ Python’da ne yapar?

Bir nesne oluşturduğunuzda otomatik olarak çalışan başlatıcıdır. Genellikle nesnenin başlangıç ​​niteliklerini ilettiğiniz argümanlardan ayarlar.

Python’da benlik nedir?

self, bir yöntemin çağrıldığı nesneyi ifade eder. Python bunu otomatik olarak iletir ve yöntemin o nesnenin niteliklerini okumasına ve değiştirmesine olanak tanır.

OOP’nin dört sütunu nedir?

Bunlar kapsülleme, soyutlama, kalıtım ve polimorfizmdir. Birlikte verileri davranışla birleştirmenize, ayrıntıları gizlemenize ve kodu yeniden kullanmanıza yardımcı olurlar.

Ne zaman işlev yerine sınıf kullanmalıyım?

Çeşitli işlemlerde veri ve davranış birbirine ait olduğunda bir sınıf kullanın. Durum bilgisi olmayan bir işlem için, düz bir işlevin test edilmesi daha basit ve kolaydır.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Test otomasyonu

Kesintili Testler: Bunların Sebepleri ve Nasıl Düzeltileceği

Yaptığımız demolarla açıklanan hatalı testler: ana nedenler, birinin nasıl doğrulanacağı ve teşhis edileceği, zamanlama için uygun düzeltmeler, payl…

Makaleyi okuyun →
Yazılım testi

Yük Testi ve Stres Testi: Farklılıklar, Metrikler ve k6 Örnekleri

Yük testi ve stres testinin açıklaması: her birinin neyi kanıtladığı, ani yükselme ve soğuma testleri, önemli ölçümler, ortalamaların neden yanıltıc…

Makaleyi okuyun →
Yazılım testi

Test Senaryosu ve Test Senaryosu: Temel Farklılıklar, Örnekler ve Her Biri Ne Zaman Kullanılmalı?

Test senaryosu ve test senaryosunun açıklaması: net tanımlar, yan yana tablo, senaryolardan vakalara, şablonlara ve her birinin ne zaman kullanılaca…

Makaleyi okuyun →
Veritabanları ve SQL

SQL Sorgu Optimizasyonu: Zamanlamalarla Yürütme Planlarını Okuyun ve Yavaş Sorguları Düzeltin

SQL sorgu optimizasyonu bir milyon satırda test edilmiştir: yürütme planlarını okuyun, doğru dizinleri ekleyin, değiştirilemeyen filtreleri düzeltin…

Makaleyi okuyun →
Veritabanları ve SQL

SQL UNION ve UNION ALL: Farklılıklar, Örnekler ve Test Edilmiş Performans

SQL UNION ve UNION ALL, yürüttüğümüz sorgularla açıklandı: kopyalar, her ikisinin de takip ettiği kurallar, gerçek bir veri hatası, ölçülen performa…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Fetch API Eğitimi: GET, POST, Hata İşleme ve Zaman Aşımları

Yerel bir sunucuya karşı test edilen bir JavaScript Fetch API öğreticisi: GET ve POST, 404'ün neden atmadığı, yeniden kullanılabilir bir yardımcı, s…

Makaleyi okuyun →
Yazılım geliştirme

Python Dosya İşleme: Örneklerle Okuma, Yazma, CSV, JSON ve pathlib

Python dosya işleme, çalıştırdığımız kodla açıklanmıştır: açık modlar, büyük dosyaları okuma, CSV, JSON, pathlib, ikili dosyalar, güvenli yazma, hat…

Makaleyi okuyun →
Yazılım geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Çalıştırdığımız kodla açıklanan Python sınıfları ve nesneleri: __init__, yöntemler, sınıf ve örnek nitelikleri, kalıtım, özellikler, dunder yöntemle…

Makaleyi okuyun →
Yapay zekâ

Büyük Dil Modeli Nedir? Yüksek Lisans'ların Nasıl Çalıştığı, Abartmadan Açıklanıyor

Büyük dil modeli nedir? LLM'ler sade bir dille açıklandı: belirteçler, yerleştirmeler, dikkat, eğitim, sıcaklık ve bağlam pencereleri, küçük bir son…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Linux Komutları: Örneklerle Temel Terminal Kılavuzu

Yeni başlayanlar için göreve göre gruplandırılmış Linux komutları: pratik bir günlük analizi örneğiyle gezinme, dosyalar, günlükleri görüntüleme, gr…

Makaleyi okuyun →
Test otomasyonu

Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

Selenium ve Playwright karşılaştırması: mimari, bekleme, tarayıcı ve dil desteği, hata ayıklama, her iki araçta da aynı test, geçiş tavsiyesi ve nas…

Makaleyi okuyun →
Yazılım testi

Eşdeğerlik Bölümleme: Test Tasarımı Tekniğinin Çalışılmış Örneklerle Açıklanması

Eşdeğerlik bölümlemenin açıklaması: geçerli ve geçersiz bölümlerin nasıl bulunacağı, yaşlara yönelik çalışılmış örnekler, şifreler ve kuponlar, yürü…

Makaleyi okuyun →
Yazılım testi

Yazılım Testinde Şiddet ve Öncelik: Farklılıklar, Matris ve Gerçek Örnekler

Yazılım testinde önem ve önceliğin açıklanması: net tanımlar, örnekler içeren dört yönlü bir matris, seviye ölçekleri, her birini kimin belirlediği …

Makaleyi okuyun →
Veritabanları ve SQL

SQL Alt Sorguları Eğitimi: Türler, İlişkili Alt Sorgular ve Örneklerle EXISTS

Çalıştırdığımız sorguları içeren bir SQL alt sorgu eğitimi: skaler, IN, FROM ve SELECT alt sorguları, ilişkili alt sorgular, EXISTS, NOT IN NULL tuz…

Makaleyi okuyun →
Veritabanları ve SQL

SQL İşlemleri ve ACID Açıklaması: COMMIT, ROLLBACK ve İzolasyon Seviyeleri

SQL işlemleri ve ACID, yürüttüğümüz bir banka transferiyle açıklandı: COMMIT, ROLLBACK, kayıt noktaları, kilitler, izolasyon seviyeleri, kirli okuma…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →