Skip to main content
IBM Quantum Platform

CircuitInstruction

class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)

Bases: object

Una única instrucción en un QuantumCircuitcompuesta por el operation y varios operandos.

Nota

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 venía primero, y originalmente contenía los qubits sobre los que operaba y cualquier parámetro, por lo que era una verdadera "instrucción". Con el tiempo, QuantumCircuit se convirtió en responsable del seguimiento de qubits y clbits, y la clase se describió mejor como una "operación". Cambiar el nombre de un objeto tan básico supondría una interrupción de la API muy desagradable para los usuarios, por lo que nos hemos quedado con él.

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 gracias a la incorporación de la Operation interfaz para 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 confusa en la que CircuitInstruction.operation suele ser una Instruction instancia de (Instruction implementa la Operation interfaz ), pero a medida que la Operation interfaz se vaya generalizando, es de esperar que esta confusión vaya desapareciendo.

Aviso

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

copy()

Devuelve una copia superficial.

Devuelve

La copia superficial.

Tipo de retorno

CircuitInstruction

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

CircuitInstruction

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.