【发布时间】:2018-01-25 06:35:34
【问题描述】:
所以我正在开发一个用于矢量计算的类,并且我重写了 __mul__(self, b) 函数来做一个 Scalarproduct。现在,每当我写A * B 时,它都会按照我的意愿进行计算。所以我想对 Crossproduct 使用x 做同样的事情。可悲的是,python 中没有默认的x 运算符,它可能只会惹恼你。但是有没有办法创建自己的运算符,它只适用于我自己的类,但也可以在代码中使用(我的意思是变量定义)?或者也许将*** 定义为运算符?
【问题讨论】:
-
简而言之:不,您不能在 Python 中定义自己的运算符。
-
正如 DYZ 的指针问题所暗示的,您可能想看看这个 hacky 方法:code.activestate.com/recipes/384122-infix-operators
-
在最新版本的 Python 中,您可以覆盖与
@运算符关联的 the__matmul__method。 应该用于矩阵乘法,但这不是硬性规定。