gpt4 book ai didi

python - 如何让 __radd__ 与 numpy 数组一起工作

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:09 27 4
gpt4 key购买 nike

<分区>

考虑以下 python 代码:

class MyClass:
def __radd__(self, a):
print "foo", a
return a

p = MyClass()

要调用 radd,可以运行以下命令:

>>> print "bar"+p
foo bar
bar

这是预期的行为。 __add__ 运行并失败,因此 __radd__ 接管并处理这种情况。但是对于 numpy 数组,它的行为有点不同:

>>> v = np.arange(2)
>>> print v+p
foo 0.
foo 1.
[0. 1.]

似乎与上面的示例不同v.__add__ itterativly 遍历v 的组件并对它们执行p.__radd__。换句话说,它已决定返回类型将是 ndarray(只要代码不崩溃)。我知道这是试图变得聪明的 numpy,但有时我希望我的类(class)能够处理算术运算。

是否有可能使用 numpy 数组获得标准的 __radd__ 行为?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com