Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
允许python对象与数学运算符交互_Python_Python 3.x_Operators_Custom Operator - Fatal编程技术网

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

允许python对象与数学运算符交互,python,python-3.x,operators,custom-operator,Python,Python 3.x,Operators,Custom Operator,我问它是因为我记得numpy使用数组。我应该添加两个包含单项式的对象 或者,是否可以创建自定义数学运算符?(就像numpy的dot产品一样)这是很有可能的。类可以包含允许对象与+和其他操作符交互的“神奇方法”。具体来说,文档的这一部分是相关的,尽管快速阅读整个文档将非常有帮助 该链接中最相关的方法: object.__add__(self, other) object.__sub__(self, other) object.__mul__(self, other) object.__matmul

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


或者,是否可以创建自定义数学运算符?(就像numpy的dot产品一样)

这是很有可能的。类可以包含允许对象与
+
和其他操作符交互的“神奇方法”。具体来说,文档的这一部分是相关的,尽管快速阅读整个文档将非常有帮助

该链接中最相关的方法:

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)
@
例如可以通过实现
\uuuu matmul\uuu
方法来使用:

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

print(T() @ T())

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

非常感谢,这非常有用!第二个问题呢,可能吗?@Giuppox查看我最近的编辑。