CircuitInstruction
class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)
Bases: object
Una instrucción en una QuantumCircuit, compuesta por el operation y varios operandos.
Existe una posible confusión en los nombres de esta clase, Instructiony Operationy el atributo de esta clase operation. Nuestra terminología preferida es por analogía con los lenguajes ensambladores, donde una "instrucción" se compone de una "operación" y sus "operandos".
Históricamente, Instruction apareció primero y, en un principio, contenía los qubits sobre los que actuaba y todos los parámetros, por lo que era una verdadera «instrucción». Con el tiempo, QuantumCircuit pasó a encargarse del seguimiento de los qubits y los clbits, y la clase pasó a describirse más adecuadamente como una «operación». Cambiar el nombre de un objeto tan fundamental supondría una ruptura de la API muy molesta para los usuarios, por lo que hemos decidido mantenerlo tal cual.
Esta clase se creó para proporcionar un objeto de contexto de «instrucción» formal en QuantumCircuit.data, que hasta entonces se había definido mediante tuplas improvisadas. Con esto, y con la llegada de la Operation interfaz que permite añadir objetos más complejos a los circuitos, hemos aprovechado la ocasión para corregir la nomenclatura histórica. Por el momento, esto da lugar a una situación un tanto complicada en la que CircuitInstruction.operation suele ser una Instruction instancia de (queInstruction implementa la Operation interfaz ), pero a medida que la Operation interfaz se vaya utilizando cada vez más, es de esperar que esta confusión vaya desapareciendo.
Se trata de una clase interna ligera y la comprobación de errores es mínima; debe respetar las sugerencias de tipo cuando la utilice. Es responsabilidad del usuario asegurarse de que las mutaciones directas del objeto no invaliden los tipos, ni las restricciones impuestas por su contexto. Esto significa, por ejemplo, que qubits debe ser una secuencia de elementos distintos, sin duplicados.
Atributos
clbits
Una secuencia de los bits clásicos de los que esta operación lee o escribe.
label
matrix
name
Devuelve el nombre de la instrucción correspondiente a la operación de este nodo
operation
Operación lógica cuya ejecución representa esta instrucción.
params
qubits
Una secuencia de los qubits a los que se aplica la operación.
Métodos
copy
from_standard
static from_standard(standard, qubits, params, label=None)
is_control_flow
is_control_flow()
¿Es la Operation contenida en esta instrucción es una operación de flujo de control (es decir, una instancia de ControlFlowOp)?
is_controlled_gate
is_controlled_gate()
¿Es la Operation contenido en esta instrucción una subclase de ControlledGate?
is_directive
is_directive()
¿Es el Operation contenido en este nodo es una directiva?
is_parameterized
is_parameterized()
¿Contiene esta instrucción algún ParameterExpression parámetros?
is_standard_gate
is_standard_gate()
¿Es la Operation contenida en esta instrucción una puerta estándar Qiskit?
replace
replace(operation=None, qubits=None, clbits=None, params=None)
Crea una copia superficial con los campos dados reemplazados.
Devuelve
Una nueva instancia con los campos dados reemplazados.
Tipo de retorno