ObservableSet¶
from cascaqit import ObservableSet
ObservableSet ¶
ObservableSet(
observables: Iterable[Observable],
*,
schema_version: str = OBSERVABLE_SCHEMA_VERSION,
)
将一组 Observable 保存为有序集合。输入 observables 可为可迭代对象,构造时保存为元组;必须至少一个,且每个 name 唯一。类型错误抛出 TypeError,空集合或重名抛出 ValueError。
支持遍历、len()、整数索引和切片。整数索引返回 Observable,切片返回元组;这些操作不会求值。schema_version 标记序列化格式。
from cascaqit import ObservableSet, PauliX, PauliZZ
requested = ObservableSet([PauliX("q0", name="X0"), PauliZZ("q0", "q1", name="ZZ")])
assert requested.names == ("X0", "ZZ")
assert requested[0].name == "X0"
assert len(requested[:1]) == 1
把它作为 observables= 传给 LocalBackend.run() 可从同一次演化的结果读取多个观测量。它不保证把任意不对易观测量合并为一次物理测量。完整执行与方差说明见批量观测量。
按声明顺序返回名称元组。后端返回的观测量批次应与这一顺序一致。
返回名称到 Observable 的新字典,供按名称查找。字典只保存声明,不包含期望值。
从字典还原 ObservableSet。逐项恢复 observables,保留输入顺序并重新检查名称唯一性。 缺少必需字段或字段不合法时可能抛出 KeyError、TypeError 或 ValueError。
解析 JSON 对象并调用 from_dict(),返回 ObservableSet。非法 JSON 会抛出解析错误;顶层不是对象时抛出 TypeError。
返回可写入 JSON 的字典,嵌套对象一并序列化。元组转成数组;这个字典是保存的声明,不是执行结果。
返回 JSON 字符串,不写文件。indent=None 使用紧凑格式;提供缩进宽度可便于阅读。
返回规范 JSON 的 SHA-256 十六进制摘要。字段、标识或元数据变化都可能改变摘要;它用于比较保存内容,不判断两个声明在物理上是否等价。