class_docstr: Shots class that allows zero shots.
code: def __init__(self, shots=None):
      if isinstance(shots, int):
          self.total_shots = shots
          self.shot_vector = (qml.measurements.ShotCopies(shots, 1),)
      else:
          self.__all_tuple_init__(
              [s if isinstance(s, tuple) else (s, 1) for s in shots]
          )
  
      self._frozen = True
  
file_path: pennylane/pennylane/devices/qubit/simulate.py
imports: from typing import Optional
  from numpy.random import default_rng
  import numpy
  import pennylane
  from pennylane.typing import Result
  from .initialize_state import create_initial_state
  from .apply_operation import apply_operation
  from .measure import measure
  from .sampling import measure_with_samples
label_desc: Use image node_id 1 to create a new _FlexShots object from inherited base classes: qml.measurements with example: obj = _FlexShots(shots)