class_docstr: Class providing the core functionality of a parameter, aka
  value, internal/model parameters, mutation, recombination
  and additional features such as shared random state,
  constraint check, hashes, generation and naming.
  The value field should sent to the function to optimize.
  
  Example
  -------
  >>> ng.p.Array(shape=(2,)).value
  array([0., 0.])
docstr: Hashable object representing the current value of the instance
docstr_tok: ["Hashable","object","representing","the","current","value","of","the","instance"]
code: def get_value_hash(self) -> tp.Hashable:
      """Hashable object representing the current value of the instance"""
      val = self.value
      if isinstance(val, (str, bytes, float, int)):
          return val
      elif isinstance(val, np.ndarray):
          return val.tobytes()
      else:
          raise errors.UnsupportedParameterOperationError(
              f"Value hash is not supported for object {self.name}"
          )
  
imports: import uuid
  import warnings
  import numpy
  import nevergrad.common.typing
  from nevergrad.common import errors
  from .None import utils
  from ._layering import ValueProperty
  from ._layering import Layered
  from ._layering import Level
label_desc: Use image node_id 15 for calling the Parameter obj's underlying member method code with example usage: obj.get_value_hash() and returns: val, val