Returns the number of qubits, qudits, or qids val operates on.

Used in the notebooks

Used in the tutorials

val The value to get the number of qubits from.
default Determines the fallback behavior when val doesn't have a number of qubits. If default is not set, a TypeError is raised. If default is set to a value, that value is returned.

If val has a _num_qubits_ method and its result is not NotImplemented, that result is returned. Otherwise, if val has a _qid_shape_ method, the number of qubits is computed from the length of the shape and returned e.g. len(shape). If neither method returns a value other than NotImplemented and a default value was specified, the default value is returned.

TypeError val doesn't have either a _num_qubits_ or a _qid_shape_ method (or they returned NotImplemented) and also no default value was specified.