code: def view(self, shape=None, chunks=None, dtype=None,
               fill_value=None, filters=None, read_only=None,
               synchronizer=None):
          store = self._store
          chunk_store = self._chunk_store
          path = self._path
          if read_only is None:
              read_only = self._read_only
          if synchronizer is None:
              synchronizer = self._synchronizer
          a = Array(store=store, path=path, chunk_store=chunk_store, read_only=read_only,
                    synchronizer=synchronizer, cache_metadata=True)
          a._is_view = True
          if dtype is None:
              dtype = self._dtype
          else:
              dtype = np.dtype(dtype)
              a._dtype = dtype
          if shape is None:
              shape = self._shape
          else:
              shape = normalize_shape(shape)
              a._shape = shape
          if chunks is not None:
              chunks = normalize_chunks(chunks, shape, dtype.itemsize)
              a._chunks = chunks
          if fill_value is not None:
              a._fill_value = fill_value
          if filters is not None:
              a._filters = filters
          return a