CircuitInstruction
class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)
베이스: object
에서 QuantumCircuit 하나의 명령어는 와 다양한 피연산자로 operation 구성됩니다.
이 클래스의 이름에 혼동이 있을 수 있습니다, Instruction와 Operation와 이 클래스의 어트리뷰트 operation. 저희가 선호하는 용어는 '명령어'가 '연산'과 그 '피연산자'로 구성되는 어셈블리 언어에 비유한 것입니다.
역사적으로, Instruction 가 먼저 등장했으며, 원래는 연산 대상인 큐비트와 모든 매개변수를 포함하고 있었기 때문에, 이는 진정한 의미의 “명령어”였습니다. 시간이 지남에 따라 QuantumCircuit 이 클래스는 큐비트와 클비트를 추적하는 역할을 맡게 되었으며, 이 클래스는 “연산”으로 더 적절하게 정의되게 되었다. 이러한 핵심 객체의 이름을 변경하는 것은 사용자에게 매우 불쾌한 API 호환성 문제를 야기할 것이므로, 우리는 기존 이름을 그대로 유지해 왔습니다.
QuantumCircuit.data이 클래스는 오랫동안 임시로 구성된 튜플로 구현되어 왔던 에 정식 “지시” 컨텍스트 객체를 제공하기 위해 만들어졌습니다. 이에 따라, 회로에 더 복잡한 객체를 추가할 수 있는 인터페이스가 Operation 도입됨에 따라, 우리는 이 기회를 통해 과거의 명명법을 바로잡기로 했습니다. 당분간은 가 종종 의 InstructionCircuitInstruction.operation 인스턴스인(Instruction 가 Operation 인터페이스를 구현하기 때문에) 어색한 상황이 발생하지만, 인터페이스의 Operation 사용이 확대됨에 따라 이러한 혼란은 점차 해소될 것으로 기대됩니다.
이 클래스는 가벼운 내부 클래스이며 최소한의 오류 검사만 수행하므로 사용할 때 유형 힌트를 준수해야 합니다. 개체의 직접적인 변형으로 인해 유형이 무효화되거나 컨텍스트에 의해 개체에 적용된 제한이 무효화되지 않도록 하는 것은 사용자의 책임입니다. 일반적으로 이는 예를 들어 다음과 같은 것을 의미합니다 qubits 는 중복이 없는 고유한 항목의 시퀀스여야 합니다.
속성
clbits
이 연산이 읽거나 쓰는 클래식 비트의 시퀀스입니다.
label
matrix
name
이 노드의 연산에 해당하는 인스트럭션 이름을 반환합니다
operation
이 명령어가 실행을 나타내는 논리 연산입니다.
params
qubits
연산이 적용되는 큐비트 시퀀스입니다.
메소드
copy
from_standard
static from_standard(standard, qubits, params, label=None)
is_control_flow
is_control_flow()
이 명령어에 포함된 Operation 이 명령어에 포함된 것이 제어 흐름 연산( ControlFlowOp)?
is_controlled_gate
is_controlled_gate()
이 명령에 포함된 Operation 이 명령어에 포함된 서브클래스는 ControlledGate?
is_directive
is_directive()
이 노드에 포함된 Operation 이 노드에 포함된 것이 지시어인가요?
is_parameterized
is_parameterized()
이 명령어에 ParameterExpression 매개변수가 포함되어 있나요?
is_standard_gate
is_standard_gate()
이 명령어에 포함된 Operation 가 키스킷 표준 게이트인가요?
replace
replace(operation=None, qubits=None, clbits=None, params=None)
지정된 필드를 바꾼 얕은 복사본을 만듭니다.
리턴
지정된 필드가 대체된 새 인스턴스입니다.
리턴 유형