- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Şimdiye kadar tüm metotlarımız nesne üzerinde (self) çalışıyordu. Peki ya bir fonksiyonun, nesnenin durumundan bağımsız olarak sınıfın kendisiyle ilgili bir işlem yapması gerekirse? İşte bu noktada Sınıf Metotları devreye girer.
Sınıf Metodu: Bir sınıfa ait olan, ancak nesnenin bir örneğine (instance) bağlı olmayan bir metottur.
Dekoratör: Metodun hemen üzerine @classmethod dekoratörü konulur.
İlk Argüman (cls): Nesneyi temsil eden self yerine, sınıfın kendisini temsil eden cls (class) argümanını alır.
stok_kodu = "TR-001" # Sınıf niteliği
def __init__(self, ad, fiyat):
self.ad = ad
self.fiyat = fiyat
@classmethod
def kodu_goster(cls):
# cls.stok_kodu ile Sınıf Niteliğine erişilir
return f"Ürünün Genel Stok Kodu: {cls.stok_kodu}"
Sınıf metotlarının en güçlü kullanımı, __init__'in yapamadığı bir şekilde nesne oluşturmaktır. __init__ her zaman aynı parametreleri bekler. Ancak biz bazen veriyi farklı bir formattan (örneğin bir dizeden) almak isteyebiliriz.
Örnek: Veriyi "isim-fiyat" formatında bir dizeden alarak nesne oluşturma.
def __init__(self, baslik, yazar):
self.baslik = baslik
self.yazar = yazar
@classmethod
def stringden_olustur(cls, kitap_string):
"""Veriyi 'Başlık:Yazar' formatında dizeden alır ve
Kitap nesnesi döndürür.""" baslik, yazar = kitap_string.split(":")
# cls() kullanımı, doğrudan Kitap(baslik, yazar)
#çağırmakla aynıdır.
# Bu, alt sınıflar miras aldığında esneklik sağlar.
return cls(baslik, yazar)
# Kullanım
kitap_dizesi = "Savaş ve Barış:Tolstoy"
kitap_nesnesi = Kitap.stringden_olustur(kitap_dizesi)
print(f"Kitabın Adı: {kitap_nesnesi.baslik}")
print(f"Yazarı: {kitap_nesnesi.yazar}")
cls() Kullanırız?cls() kullanmak, fonksiyonunuzu miras almaya hazır hale getirir (Polymorphism). Eğer başka bir sınıf (EdebiKitap) Kitap sınıfından miras alırsa, stringden_olustur metodu otomatik olarak bir EdebiKitap nesnesi döndürecektir.
🔥 Python Kariyerinizi Hemen Başlatın!
Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.
[ Python Eğitimi Sıfırdan İleri Seviye ]
Tıklayın ve Python Eğitimine Hemen Kaydolun!
Yorumlar
Yorum Gönder