dunder methods
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# double underscore variable/function
# dunder
class A(object):
def __init__(self, number):
self.number = number
def __eq__(self, value):
'''
a == b
'''
return super().__eq__(value)
def __ge__(self, value):
'''
a >= b
'''
return super().__ge__(value)
def __gt__(self, value):
'''
a > b
'''
return super().__gt__(value)
def __le__(self, value):
'''
a < b
'''
return super().__le__(value)
def __ne__(self, value):
''' a != b
'''
return super().__ne__(value)
def __str__(self):
'''print(a)
'''
return super().__str__()
def __repr__(self):
return super().__repr__()
def __len__(self):
'''
len(a)
'''
return self.number * 10
def __lt__(self, other):
'''less than
a < b
'''
return self.number < other.number
def __getattribute__(self, name):
'''
print(a[the_key])
'''
return super().__getattribute__(name)
def __setattr__(self, name, value):
'''
a[the_key] = 5
'''
return super().__setattr__(name, value)
def __delattr__(self, name):
'''
delete a['the_key']
'''
return super().__delattr__(name)
if __name__ == '__main__':
'''
'''
# a = A(5)
# b = A(6)
# print(a < b)
# print(len(a))
# a['b'] = 10
# c = a['c']
pass