Как автоматически использовать один атрибут объекта при каждом вызове объекта - PullRequest
0 голосов
/ 17 апреля 2020

Есть ли способ сделать арифметику c для python объектов класса, и все операции будут применены к одному атрибуту автоматически. Например:

>>> x = Struct(__data__ = [100,100])
>>> y = Struct(__data__ = [200,200])
>>> x + y
Struct(__data__ = [300,300])
>>> np.array(x) + np.array(y)
np.array(Struct(__data__ = [300,300]))
>>> x += y
x ==> Struct(__data__ = [300,300])
>>> x[1:] = 50
x ==> Struct(__data__ = [300,50])

Я хочу, чтобы он выполнялся как обычный номер / массив, и все операции применяются к .__data__ автоматически.

1 Ответ

0 голосов
/ 17 апреля 2020

Да, это возможно. Вам нужно определить Дандер или волхвы c методы __add__, __mul__, __eq__ и c для вашего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...