code: def __call__(self, tensors, out=None):
      if out is not None and not isinstance(out, Tensor):
          raise TypeError(
              f"`out` must be a Tensor, got {type(out)} instead"
          )
  
      shape = (
          tensors[0].shape[: self._axis]
          + (len(tensors),)
          + tensors[0].shape[self._axis :]
      )
      tensor_order = TensorOrder.C_ORDER if out is None else out.order
      t = self.new_tensor(tensors, shape, order=tensor_order)
  
      if out is None:
          return t
  
      if out.shape != t.shape:
          raise ValueError("Output tensor has wrong dimensionality")
      check_out_param(out, t, "same_kind")
      out.data = t.data
      return out
  
file_path: mars/mars/tensor/merge/stack.py
imports: import itertools
  import numpy
  from ...None import opcodes
  from ...serialization.serializables import Int32Field
  from ...utils import has_unknown_shape
  from ..utils import unify_chunks, check_out_param
  from ..array_utils import as_same_device, device
  from ..operands import TensorOperand, TensorOperandMixin
  from ..datasource import tensor
  from ..core import Tensor, TensorOrder
label_desc: Use image node_id 3 for calling the TensorStack obj's underlying member method code with example usage: obj.__call__(tensors, out) and returns: out, t