def __init__(self, oracle: QuantumCircuit, state_preparation: Optional[QuantumCircuit]=None, zero_reflection: Optional[Union[(QuantumCircuit, Operator)]]=None, reflection_qubits: Optional[List[int]]=None, insert_barriers: bool=False, mcx_mode: str='noancilla', name: str='Q') -> None:
    "\n        Args:\n            oracle: The phase oracle implementing a reflection about the bad state. Note that this\n                is not a bitflip oracle, see the docstring for more information.\n            state_preparation: The operator preparing the good and bad state.\n                For Grover's algorithm, this is a n-qubit Hadamard gate and for amplitude\n                amplification or estimation the operator :math:`\\mathcal{A}`.\n            zero_reflection: The reflection about the zero state, :math:`\\mathcal{S}_0`.\n            reflection_qubits: Qubits on which the zero reflection acts on.\n            insert_barriers: Whether barriers should be inserted between the reflections and A.\n            mcx_mode: The mode to use for building the default zero reflection.\n            name: The name of the circuit.\n        "
    super().__init__(name=name)
    self._oracle = oracle
    self._zero_reflection = zero_reflection
    self._reflection_qubits = reflection_qubits
    self._state_preparation = state_preparation
    self._insert_barriers = insert_barriers
    self._mcx_mode = mcx_mode
    self._build()
Args:
    oracle: The phase oracle implementing a reflection about the bad state. Note that this
        is not a bitflip oracle, see the docstring for more information.
    state_preparation: The operator preparing the good and bad state.
        For Grover's algorithm, this is a n-qubit Hadamard gate and for amplitude
        amplification or estimation the operator :math:`\mathcal{A}`.
    zero_reflection: The reflection about the zero state, :math:`\mathcal{S}_0`.
    reflection_qubits: Qubits on which the zero reflection acts on.
    insert_barriers: Whether barriers should be inserted between the reflections and A.
    mcx_mode: The mode to use for building the default zero reflection.
    name: The name of the circuit.
def __init__(self, oracle: QuantumCircuit, state_preparation: Optional[QuantumCircuit]=None, zero_reflection: Optional[Union[(QuantumCircuit, Operator)]]=None, reflection_qubits: Optional[List[int]]=None, insert_barriers: bool=False, mcx_mode: str='noancilla', name: str='Q') -> None:
    "\n        Args:\n            oracle: The phase oracle implementing a reflection about the bad state. Note that this\n                is not a bitflip oracle, see the docstring for more information.\n            state_preparation: The operator preparing the good and bad state.\n                For Grover's algorithm, this is a n-qubit Hadamard gate and for amplitude\n                amplification or estimation the operator :math:`\\mathcal{A}`.\n            zero_reflection: The reflection about the zero state, :math:`\\mathcal{S}_0`.\n            reflection_qubits: Qubits on which the zero reflection acts on.\n            insert_barriers: Whether barriers should be inserted between the reflections and A.\n            mcx_mode: The mode to use for building the default zero reflection.\n            name: The name of the circuit.\n        "
    super().__init__(name=name)
    self._oracle = oracle
    self._zero_reflection = zero_reflection
    self._reflection_qubits = reflection_qubits
    self._state_preparation = state_preparation
    self._insert_barriers = insert_barriers
    self._mcx_mode = mcx_mode
    self._build()