class qiskit.circuit.Register(size=None, name=None, bits=None)[source]#

Bases: object

Implement a generic register.


This class should not be instantiated directly. This is just a superclass for ClassicalRegister and QuantumRegister.

Create a new generic register.

Either the size or the bits argument must be provided. If size is not None, the register will be pre-populated with bits of the correct type.

  • size (int) – Optional. The number of bits to include in the register.

  • name (str) – Optional. The name of the register. If not provided, a unique name will be auto-generated from the register type.

  • bits (list[Bit]) – Optional. A list of Bit() instances to be used to populate the register.

  • CircuitError – if both the size and bits arguments are provided, or if neither are.

  • CircuitError – if size is not valid.

  • CircuitError – if name is not a valid name according to the OpenQASM spec.

  • CircuitError – if bits contained duplicated bits.

  • CircuitError – if bits contained bits of an incorrect type.


bit_type = None#
instances_counter = count(0)#

Get the register name.

name_format = re.compile('[a-z][a-zA-Z0-9_]*')#
prefix = 'reg'#

Get the register size.



Find the index of the provided bit within this register.