code: def get_constant(self, name, value=None):
          
          name = self.prefix + name
          param = self._get_impl(name)
          if param is None:
              if value is None:
                  raise KeyError("No constant named '{}'. Please specify value " \
                                 "if you want to create a new constant.".format(
                                     name))
              param = Constant(name, value)
              self._params[name] = param
          elif value is not None:
              assert isinstance(param, Constant), \
                  "Parameter '{}' already exists but it is not a constant.".format(
                      name)
              if isinstance(value, ndarray.NDArray):
                  value = value.asnumpy()
              assert param.shape == value.shape and \
                  (param.value.asnumpy() == value).all(), \
                  "Constant '{}' already exists but it's value doesn't match new " \
                  "value".format(name)
          return param
docs: Retrieves a :py:class:`.Constant` with name ``self.prefix+name``. If not found,
          :py:func:`get` will first try to retrieve it from "shared" dict. If still not
          found, :py:func:`get` will create a new :py:class:`.Constant` with key-word
          arguments and insert it to self.
  
          Parameters
          ----------
          name : str
              Name of the desired Constant. It will be prepended with this dictionary's
              prefix.
          value : array-like
              Initial value of constant.
  
          Returns
          -------
          :py:class:`.Constant`
              The created or retrieved :py:class:`.Constant`.