Override Python's 'in' operator?
PythonOperator OverloadingOperatorsIn OperatorPython Problem Overview
If I am creating my own class in Python, what function should I define so as to allow the use of the in
operator, e.g.
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
Python Solutions
Solution 1 - Python
http://docs.python.org/reference/datamodel.html#object.__contains__">`MyClass.__contains__(self, item)`
Solution 2 - Python
A more complete answer is:
class MyClass(object):
def __init__(self):
self.numbers = [1,2,3,4,54]
def __contains__(self, key):
return key in self.numbers
Here you would get True
when asking if 54 was in m
:
>>> m = MyClass()
>>> 54 in m
True
Solution 3 - Python
You might also want to take a look at an infix operator override framework I was able to use to create a domain-specific language: