python – What does __contains__ do, what can call __contains__ function

python – What does __contains__ do, what can call __contains__ function

Like all special methods (with magic names that begin and end in __), __contains__ is not meant to be called directly (except in very specific cases, such as up=calls to the superclass): rather, such methods are called as part of the operation of built-ins and operators. In the case of __contains__, the operator in question is in — the containment check operator.

With your class a as you present it (except for fixing your typo, and using True instead of true!-), and b as its instance, print x in b will print True — and so will any other containment check on b, since b always returns True (because self.d, a non-empty string, is true).

to get your code to do something (although nothing useful):

class a(object):

    d = ddd

    def __contains__(self, m):
        if self.d: 
            return True

b = a()

>>> d in b
True

The docs.

python – What does __contains__ do, what can call __contains__ function

__contains__ method defines how instances of class behave when they appear at right side of in and not in operator.

class Person(object):
      def __init__(self,name,age):
          self.name = name
          self.age = age
      def __contains__(self,param1):
          return True if param1 in self.__dict__.keys() else False

>>> p = Person(Robby Krieger,23)
>>> name in p
True  

Leave a Reply

Your email address will not be published. Required fields are marked *