Python: 如何为我自己实现@运算符class

Python: How to implement the @ operator for my own class

我目前正在使用一些方法制作自己的矩阵 class 并想实现矩阵乘法。我已经看到它是在 numpy 中实现的,想问一下是否可以将它与我自己的 class 一起使用。

通过覆盖 __matmul__ 方法(可能还有 __rmatmul__)来实现 @ 运算符。如果您还想支持 @=,请覆盖 __imatmul__

有关详细信息,请阅读 Python data model, specifically the section on emulating numeric types