python - 重定向方法调用,如 __getattribute__()?
问题描述
我正在尝试继承 numpy.ndarray,但需要在方法中调整数组的大小,但到目前为止没有答案:
所以我的问题是如何将方法重定向到本地对象。对于属性,您可以使用__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)
但这通常是您以后会后悔的事情:-}。
编辑:回到第一种(更好的)方式:您可以就地调整大小。见这里:https ://numpy.org/doc/stable/reference/generated/numpy.ndarray.resize.html#numpy.ndarray.resize
推荐阅读
- c# - 在 IIS 中执行相同代码的时间比在桌面应用程序中要长
- angularjs - 最初选中的复选框值未在 AngularJS 中的控制器中传递
- asp.net - 将 on-promise 数据库连接到 ASP.NET
- mysql - 如何使用 Codeigniter Rest Api 将多行插入 mysql
- ios - Alamofire:向 unicode 字符添加额外的正斜杠
- php - 使用 php include_once 函数后 AngularJs 将无法工作
- django - 在这种情况下,如何设置uwsgi.ini?
- python - 无法让 Pyramid 识别 Mongo
- android - 我是否需要对主要 ToolbarItem 执行任何特定操作才能在 Android 上显示为禁用
- mysql - 在mysql中为学生获取相关科目