code: def validate_arguments_type_of_function(param_type=None):
      
  
      def inner(function):
  
          def wrapper(self, *args, **kwargs):
              type_ = param_type or type(self)
              for arg in args + tuple(kwargs.values()):
                  if not isinstance(arg, type_):
                      raise TypeError(
                          (
                              'Invalid Type: {}.{}() accepts only the '
                              'arguments of type "<{}>"'
                          ).format(
                              type(self).__name__,
                              function.__name__,
                              type_.__name__,
                          )
                      )
  
              return function(self, *args, **kwargs)
  
          return wrapper
  
      return inner
docs: Decorator to validate the <type> of arguments in
      the calling function are of the `param_type` class.
  
      if `param_type` is None, uses `param_type` as the class where it is used.
  
      Note: Use this decorator on the functions of the class.