CodeBlanks Logo Icon CodeBlanks

__contains__

__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

main.py
# Box sınıfını tanımla

Örnek çözüm

main.py
# 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

Soru
class Box:
    def __contains__(self, ____):
        return item in self.items
Cevap
class Box:
    def __contains__(self, item):
        return item in self.items

Açıklama: __contains__ self ve item parametreleri alır.

Orta seviye bölümündeki tüm dersler