code: def get_field(self, field, idx=None, astype=None):
          
          assert astype in (None, list, matrix)
          ret = None
  
          if idx is None:
              idx = self.idx
  
          # ===================disable warning ==============================
          # if field in self._service:
          # logger.warning(
          #     'Reading service variable <{model}.{field}> could be unsafe.'
          #         .format(field=field, model=self._name)
          # )
          # =================================================================
  
          uid = self.get_uid(idx)
  
          field_data = self.__dict__[field]
  
          if isinstance(field_data, matrix):
              ret = field_data[uid]
          elif isinstance(field_data, list):
              if isinstance(idx, (float, int, str)):
                  ret = field_data[uid]
              else:
                  ret = [field_data[x] for x in uid]
  
          if astype is not None:
              ret = astype(ret)
  
          return ret
docs: Return `self.field` for the elements labeled by `idx`
  
          :param astype: type cast of the return value
          :param field: field name of this model
          :param idx: element indices, will be the whole list if not specified
          :return: field values