qasm(val: Any, *, args: Optional[cirq.protocols.qasm.QasmArgs] = None, qubits: Optional[Iterable[cirq.QubitId]] = None, default: TDefault = (, )) → Union[str, TDefault]¶
Returns QASM code for the given value, if possible.Different values require different sets of arguments. The general rule ofthumb is that circuits don’t need any, operations need a
QasmArgs, andgates need both a
- val – The value to turn into QASM code.
- args – A QasmArgs object to pass into the value’s _qasm_ method. This is for needed for objects that only have a local idea of what’s going on, e.g. a cirq.Operation in a bigger cirq.Circuit involving qubits that the operation wouldn’t otherwise know about.
- qubits – A list of qubits that the value is being applied to. This is needed for cirq.Gate values, which otherwise wouldn’t know what qubits to talk about.
- default – A default result to use if the value doesn’t have a _qasm_ method or that method returns NotImplemented or None. If not specified, undecomposable values cause a TypeError.
The result of val._qasm_(…), if val has a _qasm_ method and it didn’t return NotImplemented or None. Otherwise default is returned, if it was specified. Otherwise an error is raised.
- val didn’t have a _qasm_ method (or that method returned NotImplemented or None) and default wasn’t set.