def equals(first, second):
    """
    used to overload Dunder method __eq__ of any class
    Compare equality of first and second
    :param first: self of one object
    :param second: self of other object
    :return: True if all attributes value are same otherwise False
    """
    for k, v in first.__dict__.items():
        if not hasattr(second, k) or v != second.__dict__[k]:
            return False
    for k, v in second.__dict__.items():
        if not hasattr(first, k) or v != first.__dict__[k]:
            return False
    return True
