__contains__
- Python kursu
- Orta seviye
- Ders 34/116
- 4 dk
__contains__ ile in operatörünü öğrenirsin.
__contains__ metodu
__contains__(self, item), in işlecini tanımlar. item in obj yazımı __contains__'i çağırır; sonuç True ya da False'tür.
Örnek: class Box:\n def __contains__(self, item):\n return item in self.items. 2 in b yazımı, 2'nin b.items'ta olup olmadığını döndürür. Bu, koleksiyon sınıflarında üyelik denetimini doğal kılar.
Üyelik denetimi
__contains__ tanımlı değilse, Python __iter__ veya __getitem__ üzerinden üyelik denetimi yapar; ama __contains__ daha hızlı ve doğrudandır.
Örnek: Box sınıfında 2 in b yazımı __contains__'i çağırır. Bu metot, iç listede arama yapar ve True/False döndürür. not in de otomatik çalışır; ayrı metot gerekmez.
Uygulama Box sınıfına __contains__ ekle
Box sınıfını tanımla. def __init__(self, items): ve gövdede self.items = items yaz. def __contains__(self, item): ekle; gövdede return item in self.items yaz. Sonra b = Box([1, 2, 3]) ve print(2 in b) çağrılarını yap.
Başlangıç kodu
# Box sınıfını tanımlaÖrnek çözüm
# Box sınıfını tanımla
class Box:
def __init__(self, items):
self.items = items
def __contains__(self, item):
return item in self.items
b = Box([1, 2, 3])
print(2 in b)Beklenen çıktı
True
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 __contains__ kavramlarını eşle
| Kavram | Anlamı |
|---|---|
__contains__ |
in işleci |
item in self.items |
İç denetim |
True/False |
Dönüş değeri |
2 x in obj hangi metodu çağırır?
- __contains__ Doğru cevap
- __iter__
- __getitem__
- __in__
Açıklama: in işleci __contains__ metodunu çağırır.
3 __contains__ imzasını tamamla
class Box:
def __contains__(self, ____):
return item in self.items
class Box:
def __contains__(self, item):
return item in self.items
Açıklama: __contains__ self ve item parametreleri alır.