CircuitInstruction
class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)
Basi: object
Una singola istruzione in un QuantumCircuit, costituita dal operation e da vari operandi.
I nomi di questa classe possono creare confusione, Instructione Operatione l'attributo di questa classe operation. La terminologia che preferiamo è in analogia con i linguaggi assembly, dove una "istruzione" è costituita da una "operazione" e dai suoi "operandi".
Storicamente, Instruction era la prima a comparire e originariamente conteneva i qubit su cui agiva e tutti i parametri, quindi era una vera e propria “istruzione”. Con il passare del tempo, QuantumCircuit assunse il compito di tenere traccia dei qubit e dei clbit, e la classe venne definita più appropriatamente come “operazione”. Cambiare il nome di un oggetto fondamentale come questo comporterebbe una rottura dell'API molto sgradevole per gli utenti, e per questo abbiamo deciso di mantenerlo.
Questa classe è stata creata per fornire un oggetto contestuale formale di “istruzione” in QuantumCircuit.data, che per molto tempo era stato costituito da tuple ad hoc. Grazie a questo, e all’introduzione dell’interfaccia Operation che consente di aggiungere oggetti più complessi ai circuiti, abbiamo colto l’occasione per correggere la denominazione storica. Per il momento, ciò porta a una situazione un po’ complicata in cui CircuitInstruction.operation è spesso un’istanza Instruction di (cheInstruction implementa l’interfaccia Operation ), ma man mano che Operation l’interfaccia verrà utilizzata sempre più spesso, si spera che questa confusione si attenui.
Si tratta di una classe interna leggera e il controllo degli errori è minimo; è necessario rispettare i suggerimenti sul tipo quando la si usa. È responsabilità dell'utente assicurarsi che le mutazioni dirette dell'oggetto non invalidino i tipi e le restrizioni imposte dal contesto. In genere questo significa, ad esempio, che qubits deve essere una sequenza di elementi distinti, senza duplicati.
Attributi
clbits
Una sequenza di bit classici da cui questa operazione legge o scrive.
label
matrix
name
Restituisce il nome dell'istruzione corrispondente all'operazione per questo nodo
operation
L'operazione logica di cui questa istruzione rappresenta l'esecuzione.
params
qubits
Una sequenza di qubit a cui viene applicata l'operazione.
Metodi
copy
copy()
Restituisce una copia superficiale.
Risultati
La copia superficiale.
Tipo di restituzione
from_standard
static from_standard(standard, qubits, params, label=None)
is_control_flow
is_control_flow()
L'istruzione Operation contenuta in questa istruzione è un'operazione di flusso di controllo (cioè un'istanza di ControlFlowOp)?
is_controlled_gate
is_controlled_gate()
L'istruzione Operation contenuto in questa istruzione è una sottoclasse di ControlledGate?
is_directive
is_directive()
L'elemento Operation contenuto in questo nodo è una direttiva?
is_parameterized
is_parameterized()
Questa istruzione contiene dei ParameterExpression parametri?
is_standard_gate
is_standard_gate()
L'istruzione Operation contenuto in questa istruzione è un cancello standard Qiskit?
replace
replace(operation=None, qubits=None, clbits=None, params=None)
Crea una copia superficiale con la sostituzione dei campi indicati.
Risultati
Una nuova istanza con i campi indicati sostituiti.
Tipo di restituzione