Python Methods

Python Methods

Python'da metotlar (methods), bir sınıf içinde tanımlanan ve o sınıftan türetilen nesnelerin gerçekleştirebileceği işlevleri tanımlayan fonksiyonlardır. Yani, sınıfın davranışlarını temsil ederler.

Metotların Özellikleri:

  • Sınıf içindeki bir fonksiyondur.
  • İlk parametre olarak self alır (bu, metot çağrıldığında o nesnenin kendisine erişimi sağlar).
  • Bir sınıfın özelliklerini ve diğer metotlarını kullanarak nesneye özel işlevsellik sağlar.

Metot Türleri

Python'da birkaç farklı metot türü vardır:

  1. Örnek Metotlar (Instance Methods)
  2. Sınıf Metotları (Class Methods)
  3. Statik Metotlar (Static Methods)

1. Örnek Metotlar (Instance Methods)

Bu metotlar, bir sınıfın nesnelerine özgüdür ve genellikle sınıfın __init__ metoduyla oluşturulan özelliklerine erişirler. İlk parametre olarak self alırlar.

class Araba: def __init__(self, model, renk): self.model = model self.renk = renk def bilgi(self): # Örnek metot return f"Model: {self.model}, Renk: {self.renk}" # Nesne oluşturma araba1 = Araba("Toyota", "Kırmızı") print(araba1.bilgi()) # Model: Toyota, Renk: Kırmızı

Yukarıdaki örnekte, bilgi() metodu, self parametresi aracılığıyla nesneye erişir ve nesneye özgü bilgileri döndürür.

2. Sınıf Metotları (Class Methods)

Sınıf metotları, sınıfın tamamını etkileyen işlemler için kullanılır. İlk parametre olarak cls alırlar ve sınıfın kendisine erişirler (nesneye değil). Bu metotlar, @classmethod dekoratörü ile tanımlanır.

class Araba: sayi = 0 # Sınıf değişkeni def __init__(self, model): self.model = model Araba.sayi += 1 @classmethod def toplam_araba(cls): # Sınıf metodu return f"Toplam Araba Sayısı: {cls.sayi}" # Nesneler oluşturma araba1 = Araba("Toyota") araba2 = Araba("Honda") print(Araba.toplam_araba()) # Toplam Araba Sayısı: 2

Bu örnekte, toplam_araba() metodu sınıfın genel durumunu temsil eder ve tüm nesneler tarafından paylaşılan sayi sınıf değişkenini kullanır.

3. Statik Metotlar (Static Methods)

Statik metotlar, sınıfın veya nesnenin durumuna erişmezler (yani self veya cls parametreleri almazlar). Genellikle sınıfa ait bir fonksiyon olarak çalışırlar ve sınıfın veya nesnenin durumunu değiştirmezler. @staticmethod dekoratörü ile tanımlanırlar.

class Araba: @staticmethod def teker_sayisi(): return 4 # Statik metodu çağırma print(Araba.teker_sayisi()) # 4

Yukarıdaki örnekte, teker_sayisi() metodu sınıfın durumu hakkında bilgi gerektirmez ve sadece bir işlev sunar.

Özel Metotlar (Dunder Methods)

Python'da iki alt çizgiyle başlayan ve biten özel metotlar vardır (dunder: "double underscore"). Bu metotlar, sınıflara bazı özel işlevler ekler. Örneğin:

  • __init__: Constructor (yapıcı metot)
  • __str__: Nesneyi metin olarak döndürmek için kullanılır.
  • __len__: Bir nesnenin uzunluğunu döndürür.

Örnek:

class Araba: def __init__(self, model, renk): self.model = model self.renk = renk def __str__(self): # Özel metot return f"Model: {self.model}, Renk: {self.renk}" araba = Araba("Tesla", "Beyaz") print(araba) # Model: Tesla, Renk: Beyaz

Metot Kullanımı

Bir sınıfın metotlarına şu şekilde erişilir:

  1. Önce sınıftan bir nesne oluşturulur.
  2. Bu nesne üzerinden metotlar çağrılır.
class Kedi: def __init__(self, isim): self.isim = isim def miyavla(self): print(f"{self.isim} miyavlıyor!") # Nesne oluşturma ve metot çağırma kedi1 = Kedi("Minik") kedi1.miyavla() # Minik miyavlıyor!

Özet:

  • Metotlar, sınıf içinde tanımlanan fonksiyonlardır ve nesnelerle ilgili işlevleri yerine getirirler.
  • Örnek metotlar nesnelerle etkileşimde bulunur.
  • Sınıf metotları, sınıfın kendisiyle çalışır ve sınıf değişkenlerini manipüle eder.
  • Statik metotlar, ne sınıf ne de nesne durumu gerektirmeyen işlemler için kullanılır.


Yorum Ekle

Üzerine gel