在包含numpy数组作为属性的类中重载运算符时,我遇到了一个问题.根据操作数的顺序,结果类型将是我的类A(所需行为)或numpy数组.如何使它始终返回A的实例?
例:
import numpy as np
class A(object):
""" class overloading a numpy array for addition
"""
def __init__(self, values):
self.values = values
def __add__(self, x):
""" addition
"""
x = np.array(x) # make sure input is numpy compatible
return A(self.values + x)
def __radd__(self, x):
""" reversed-order (LHS <-> RHS) addition
"""
x = np.array(x) # make sure input is numpy compatible
return A(x + self.values)
def __array__(self):
""" so that numpy's array() returns values
"""
return self.values
def …Run Code Online (Sandbox Code Playgroud)