CircuitInstruction
class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)
Basen: object
Ein einzelner Befehl in einem QuantumCircuit, bestehend aus dem operation und verschiedenen Operanden.
Die Namen dieser Klasse sind möglicherweise etwas verwirrend, Instruction, und Operationund das Attribut dieser Klasse operation. Wir bevorzugen eine Terminologie in Analogie zu Assembler-Sprachen, wo eine "Anweisung" aus einer "Operation" und ihren "Operanden" besteht.
Historisch gesehen Instruction kam zuerst und enthielt ursprünglich die Qubits, auf die es einwirkte, sowie alle Parameter; es handelte sich also um eine echte „Anweisung“. Im QuantumCircuit Laufe der Zeit übernahm sie die Aufgabe, Qubits und Clbits zu verfolgen, und die Klasse ließ sich besser als „Operation“ beschreiben. Eine Namensänderung bei einem solchen Kernobjekt würde für die Nutzer einen sehr unangenehmen API-Bruch bedeuten, weshalb wir daran festgehalten haben.
QuantumCircuit.dataDiese Klasse wurde geschaffen, um in ein formales Kontext-Objekt vom Typ „instruction“ bereitzustellen, das lange Zeit aus Ad-hoc-Tupeln bestand. Vor diesem Hintergrund und mit der Einführung der Operation Schnittstelle zum Hinzufügen komplexerer Objekte zu Schaltkreisen haben wir die Gelegenheit genutzt, die bisherige Namensgebung zu korrigieren. Dies führt vorerst zu einer etwas heiklen Situation, in CircuitInstruction.operation der oft eine Instruction Instanz ist (Instruction implementiert die Operation Schnittstelle), doch da die Operation Schnittstelle zunehmend Verbreitung findet, wird sich diese Verwirrung hoffentlich legen.
Dies ist eine leichtgewichtige interne Klasse und es gibt nur eine minimale Fehlerprüfung; Sie müssen die Typ-Hinweise beachten, wenn Sie sie verwenden. Es liegt in der Verantwortung des Benutzers, dafür zu sorgen, dass direkte Mutationen des Objekts weder die Typen noch die durch den Kontext auferlegten Einschränkungen ungültig machen. Normalerweise bedeutet dies zum Beispiel, dass qubits eine Folge von eindeutigen Elementen ohne Duplikate sein muss.
Attribute
clbits
Eine Folge der klassischen Bits, aus denen diese Operation liest oder in die sie schreibt.
label
matrix
name
Gibt den Namen der Anweisung zurück, die der Operation für diesen Knoten entspricht
operation
Die logische Operation, die mit dieser Anweisung ausgeführt werden soll.
params
qubits
Eine Folge von Qubits, auf die die Operation angewendet wird.
Methoden
copy
from_standard
static from_standard(standard, qubits, params, label=None)
is_control_flow
is_control_flow()
Ist die Operation in dieser Anweisung eine Kontrollflussoperation (d. h. eine Instanz von ControlFlowOp)?
is_controlled_gate
is_controlled_gate()
Ist die Operation in dieser Anweisung eine Unterklasse von ControlledGate?
is_directive
is_directive()
Ist der Operation in diesem Knoten eine Richtlinie?
is_parameterized
is_parameterized()
Enthält diese Anweisung irgendwelche ParameterExpression parameter?
is_standard_gate
is_standard_gate()
Ist das Operation in dieser Anweisung enthaltene Tor ein Qiskit-Standardtor?
replace
replace(operation=None, qubits=None, clbits=None, params=None)
Erzeugt eine flache Kopie, bei der die angegebenen Felder ersetzt werden.
Rückgabe
Eine neue Instanz, in der die angegebenen Felder ersetzt werden.
Rückgabetyp