class MyClass:
def __len__(self):
return 0
def __getitem__(self, index):
return index
l = MyClass()
len(l)
l["XX"]
class MyClass:
def __add__(self, x):
return x
def __sub__(self, y):
return y
def __mul__(self, y):
return y*2
l = MyClass()
l + 23
l - 24
l * 9
class MyClass:
def __iter__(self):
self.current = 1
self.end = 9
return self
def __next__(self):
if ( self.current > self.end ):
raise StopIteration
next_value = self.current
self.current += 2
return next_value
l = MyClass()
for x in l:
print(x)
class MyClass:
def __init__(self, val):
self.val = val
def __eq__(self, other):
equality = False
if ( isinstance(other, MyClass) ):
if ( self.val == other.val ):
equality = True
return equality
def __ne__(self, other):
return not self.__eq__(other)
def __hash__(self):
return self.val.__hash__()
def __repr__(self):
return self.val.__repr__()
def __str__(self):
return self.val.__str__()
l = MyClass(99)
r = MyClass(101)
m = MyClass(99)
l == r
l == m
l != r
new_set = set([l, r, m])
new_set