我正在尝试继承numpy.ndarray,但需要在方法中调整数组的大小,但到目前为止没有答案:
Resize inherited ndarray, inside a method?
因此,我的问题是如何将方法重定向到本地对象。对于属性,您可以使用__ getattribute __,__ getattr __方法是否有类似的选项?
类似这样的东西:
class Blah():
def __init__(...):
......
self.obj = np.zeros(...)
def __get_method__(self, method):
return self.obj.method() ????
您不仅可以继承numpy.array
吗?
class Blah(numpy.array):
def __init__(self, *args, **kwargs):
numpy.array.__init__(self, *args, **kwargs)
....
def resize(self, ...):
....
作为有时可能更方便的骇客,您可以选择执行
class Blah:
...
def __getattr__(self, name):
return getattr(self.obj, name)
但是通常这是您以后会后悔的事情:-}。
Edit:回到第一种(更好的)方式:您可以就地调整大小。看到这里:https://numpy.org/doc/stable/reference/generated/numpy.ndarray.resize.html#numpy.ndarray.resize