2 - Sınıflar, Nesneler ve Yapıcı Metotlar
2025
Analoji:
class
Anahtar Kelimesiclass
anahtar kelimesi ile sınıf tanımlanır.pass
ifadesi, şimdilik sınıfın içini boş bırakmak için kullanılır.kopek1 = Kopek() # Kopek sınıfından bir nesne (örnek) oluştur
kopek2 = Kopek() # Başka bir Kopek nesnesi oluştur
__init__
Metodu: Yapıcı Metot (Constructor)self
Parametresiself
olabilir.self
, o anda üzerinde işlem yapılan nesneyi temsil eder.self
aracılığıyla erişilir.self
ile tanımlanırlar.class Kopek:
tur = "Memeli" # Sınıf niteliği
def __init__(self, isim, cins):
self.isim = isim # Örnek niteliği
self.cins = cins # Örnek niteliği
kopek1 = Kopek("Bobi", "Golden Retriever")
kopek2 = Kopek("Çakıl", "Terrier")
print(kopek1.isim) # Çıktı: Bobi
print(kopek2.cins) # Çıktı: Terrier
print(Kopek.tur) # Çıktı: Memeli
print(kopek1.tur) # Çıktı: Memeli (Sınıf niteliğine erişim)
self
olmalıdır.cls
olmalıdır (sınıfın kendisini temsil eder).@classmethod
dekoratörü ile tanımlanırlar.Dekoratörler
Fonksiyonların veya sınıfların davranışlarını değiştirmek veya genişletmek için kullanılan yapılardır. İleride daha detaylı incelenecektir.
@staticmethod
dekoratörü ile tanımlanırlar.self
ve cls
Farkıself
: Örnek (instance) metotlarında kullanılır. O anda üzerinde işlem yapılan nesneyi temsil eder.cls
: Sınıf (class) metotlarında kullanılır. Sınıfın kendisini temsil eder.class Araba:
def __init__(self, marka, model, renk):
self.marka = marka
self.model = model
self.renk = renk
def bilgileri_goster(self):
print(f"Marka: {self.marka}, Model: {self.model}, Renk: {self.renk}")
def calistir(self):
print("Araba çalıştırılıyor...")
def durdur(self):
print("Araba durduruluyor.")
__init__
metodu, nesnelerin başlangıç durumunu ayarlar.self
, nesnenin kendisine referans verir.cls
, sınıf metodlarında sınıfın kendisine referans verir.@staticmethod
ve @classmethod
dekoratörleri, sırasıyla statik ve sınıf metotları tanımlamak için kullanılır.super()
FonksiyonuOgrenci
adında bir sınıf tanımlayın. Öğrencilerin adı, soyadı, numarası ve notları (liste olarak) gibi özellikleri olsun.Ogrenci
sınıfına, öğrencinin not ortalamasını hesaplayan bir metot ekleyin.Ogrenci
sınıfına, öğrencinin bilgilerini ekrana yazdıran bir metot ekleyin.Ogrenci
nesnesi oluşturun ve bu öğrencilerin bilgilerini ve not ortalamalarını ekrana yazdırın.Kitap
adında bir sınıf tanımlayın. Kitapların adı, yazarı, sayfa sayısı ve fiyatı gibi özellikleri olsun.Kitap
sınıfına, kitabın bilgilerini ekrana yazdıran bir metot ekleyin.Kitap
sınıfına, kitabın fiyatına belirli bir oranda indirim uygulayan bir metot ekleyin.Kitap
nesnesi oluşturun ve bu kitapların bilgilerini ekrana yazdırın. Bir kitabın fiyatına indirim uygulayın ve tekrar yazdırın.