@classmethod
- Python kursu
- Orta seviye
- Ders 25/116
- 5 dk
@classmethod ile sınıf metotlarını öğrenirsin.
@classmethod decorator
@classmethod decorator'ı, ilk parametre olarak cls alır. cls, çağrılan sınıfın kendisidir; örnek değil. Bu, sınıf düzeyinde işlemler için kullanışlıdır.
Örnek: class Counter:\n @classmethod\n def from_list(cls, items):\n return cls(len(items)). Counter.from_list([1, 2, 3]) çağrısında cls Counter'dır; cls(len(items)) yeni bir örnek oluşturur. Bu desen alternatif kurucu olarak yaygındır.
cls neyi temsil eder?
cls, metodu çağıran sınıfın kendisidir. Örnek veriye değil, sınıfa erişim sağlar. cls(...) yazarak yeni örnek oluşturulabilir; bu, alternatif kurucu yazmayı kolaylaştırır.
Örnek: Counter.from_list([1, 2, 3]) çağrısında cls, Counter'dır. cls(len(items)) ile Counter(3) örneği oluşur. Bu, alt sınıflarda da doğru çalışır; cls her zaman çağıran sınıf olur.
Uygulama Counter'a classmethod ekle
Counter sınıfını tanımla. def __init__(self, count): ve gövdede self.count = count yaz. @classmethod ve def from_list(cls, items): ekle; gövdede return cls(len(items)) yaz. Sonra c = Counter.from_list([1, 2, 3]) ile örnek oluştur ve print(c.count) yaz.
Başlangıç kodu
# Counter sınıfını tanımlaÖrnek çözüm
# Counter sınıfını tanımla
class Counter:
def __init__(self, count):
self.count = count
@classmethod
def from_list(cls, items):
return cls(len(items))
c = Counter.from_list([1, 2, 3])
print(c.count)Beklenen çıktı
3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 classmethod imzasını tamamla
class Counter:
@classmethod
def from_list(____, items):
return cls(len(items))
class Counter:
@classmethod
def from_list(cls, items):
return cls(len(items))
Açıklama: @classmethod ilk parametre olarak cls alır.
2 @classmethod'un ilk parametresi nedir?
- cls Doğru cevap
- self
- this
- class
Açıklama: @classmethod'un ilk parametresi cls olur.
3 classmethod kavramlarını eşle
| Kavram | Anlamı |
|---|---|
@classmethod |
Decorator |
cls |
Sınıf referansı |
cls(len(items)) |
Yeni örnek |