class_docstr: Developer-facing base class for single-operator symbolic operators that contain a
  scalar coefficient.
  
  Args:
      base (~.operation.Operator): the base operation that is modified symbolicly
      scalar (float): the scalar coefficient
      id (str): custom label given to an operator instance, can be useful for some applications
          where the instance has to be identified
  
  This *developer-facing* class can serve as a parent to single base symbolic operators, such as
  :class:`~.ops.op_math.SProd` and :class:`~.ops.op_math.Pow`.
class_docstr_tok: ["Developer-facing","base","class","for","single-operator","symbolic","operators","that","contain","a","scalar","coefficient",".","Args",":","base","(","~.operation.Operator",")",":","the","base","operation","that","is","modified","symbolicly","scalar","(","float",")",":","the","scalar","coefficient","id","(","str",")",":","custom","label","given","to","an","operator","instance",",","can","be","useful","for","some","applications","where","the","instance","has","to","be","identified","This","*","developer-facing","*","class","can","serve","as","a","parent","to","single","base","symbolic","operators",",","such","as",":","class",":","`","~.ops.op_math.SProd","`","and",":","class",":","`","~.ops.op_math.Pow","`","."]
code: def __init__(self, base, scalar: float, id=None):
      self.scalar = (
          np.array(scalar) if isinstance(scalar, list) else scalar
      )
      super().__init__(base, id=id)
      self._batch_size = _UNSET_BATCH_SIZE
  
imports: from abc import abstractmethod
  from copy import copy
  import numpy
  import pennylane
  from pennylane.operation import Operator, _UNSET_BATCH_SIZE
  from pennylane.queuing import QueuingManager
label_desc: Use image node_id 1 to create a new ScalarSymbolicOp object from inherited base classes: SymbolicOp with example: obj = ScalarSymbolicOp(base, scalar, id)