code: def distance(self,other):
          '''
          A generic distance method, which requires the existence of an attribute
          called distance_criteria, giving a list of strings naming the attributes
          to be considered by the distance metric.
  
          Parameters
          ----------
          other : object
              Another object to compare this instance to.
  
          Returns
          -------
          (unnamed) : float
              The distance between this object and another, using the "universal
              distance" metric.
          '''
          distance_list = [0.0]
          for attr_name in self.distance_criteria:
              try:
                  obj_A = getattr(self,attr_name)
                  obj_B = getattr(other,attr_name)
                  distance_list.append(distanceMetric(obj_A,obj_B))
              except:
                  distance_list.append(1000.0) # if either object lacks attribute, they are not the same
          return max(distance_listf distance(self,other):
          '''
          A generic distance method, which requires the existence of an attribute
          called distance_criteria, giving a list of strings naming the attributes
          to be considered by the distance metric.
  
          Parameters
          ----------
          other : object
              Another object to compare this instance to.
  
          Returns
          -------
          (unnamed) : float
              The distance between this object and another, using the "universal
              distance" metric.
          '''
          distance_list = [0.0]
          for attr_name in self.distance_criteria:
              try:
                  obj_A = getattr(self,attr_name)
                  obj_B = getattr(other,attr_name)
                  distance_list.append(distanceMetric(obj_A,obj_B))
              except:
                  distance_list.append(1000.0) # if either object lacks attribute, they are not the same
          return max(distance_list)
docs: A generic distance method, which requires the existence of an attribute
          called distance_criteria, giving a list of strings naming the attributes
          to be considered by the distance metric.
  
          Parameters
          ----------
          other : object
              Another object to compare this instance to.
  
          Returns
          -------
          (unnamed) : float
              The distance between this object and another, using the "universal
              distance" metric.