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