如何找出 `*` 运算符对某个库 (cirq) 中的两个对象执行的操作?

How to find out what `*` operator do on two objects from some library (cirq)?

我刚开始使用 python cirq 库,我在教程中遇到了以下代码行:

XX_obs = cirq.X(q0) * cirq.X(q1)

我只想在代码中找到这个 * 运算符对这两个特定的 cirq 对象执行的操作。如何操作?

首先,你需要找到cirq.X(q0)的类型是什么:

print(type(cirq.X(q0)))

然后在 class 中查找方法 __mul__ 的定义。 class 的 __mul__ 方法定义对象如何作为乘法运算的左操作符。