docs: def _get_object_key(self, p_object):
          """Get key from object"""
          matched_key = None
          matched_index = None
  
          if hasattr(p_object, self._searchNames[0]):
              return getattr(p_object, self._searchNames[0])
  
          for x in xrange(len(self._searchNames)):
              key = self._searchNames[x]
              if hasattr(p_object, key):
                  matched_key = key
                  matched_index = x
  
          if matched_key is None:
              raise KeyError()
  
          if matched_index != 0 and self._searchOptimize:
              self._searchNames.insert(0, self._searchNames.pop(matched_index))
  
          return getattr(p_object, matched_key)