允许 python 对象与数学运算符交互



我问它,因为我记得numpy是用数组做的。我应该添加两个包含单项式的对象。

或者,是否可以创建自定义数学运算符?(比如 Numpy 的点积的 @(

这是很有可能的。类可以包含允许对象与+和其他运算符交互的"魔术方法"。具体来说,文档的这一部分是相关的,尽管快速阅读整个文档会非常有帮助。

该链接中最相关的方法:

object.__add__(self, other)
object.__sub__(self, other)
object.__mul__(self, other)
object.__matmul__(self, other)
object.__truediv__(self, other)
object.__floordiv__(self, other)
object.__mod__(self, other)
object.__divmod__(self, other)

例如,可以通过实现__matmul__方法使用@

class T:
def __matmul__(self, other_t):
pass
print(T() @ T())

您不能创建语言中尚不存在的"自定义"运算符,但可以使用现有运算符中的任何挂钩。

最新更新