将语法糖(或特殊方法调用)传递给属性

时间:2017-11-15 16:33:11

标签: python python-3.x inheritance attributes

我有一个类,除其他外,存储和操作np.ndarray数据,保存在data属性中。

class DataContainer:
    def __init__(self, data, ...):
        self.data = data
        # ...

是否有可能传递语法糖,例如a + b导致以编程方式调用a.__add__(b) data属性?

当然我可以有很多方法,如:

def __add__(self, other):
    return self.data.__add__(other)

但是np.ndarray支持special method names的长列表,我会对以下内容感兴趣:

  1. 是否有一种比我想要转发的每种特殊方法明确定义新方法更优雅的方式?
  2. 是否应该这样做或者是否优先明确定义? (我在想,例如文档解析器的可能问题,......?)
  3. 请注意,我认为np.ndarray的继承不是一个可行的选项,因为这会使类过于复杂。我只是打算通过支持一些特殊方法来使数据更简单...

0 个答案:

没有答案