Страницы

Поиск по вопросам

суббота, 21 декабря 2019 г.

Перегрузка оператора + для сложения своего объекта и чисел

#python


Хочу осуществить возможность перегрузить оператор +, таким способом, что бы возможно
было к объекту добавлять объект, и к объекту добавлять число.


class Fff:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def __add__(self,obj):
        return Fff(self.x + obj.x,self.y + obj.y)
    def __add__(self,v):
        return Fff(self.x + v,self.y + v)
    def show(self):
        print self.x,' : ',self.y

f1 = Fff(1,2)
f2 = Fff(5,5)

result = f1 + f2
result2 = f1 + 2

result.show()
result2.show()



    


Ответы

Ответ 1



Перегрузки функций в питоне нету. Но вы можете реализовать различное поведение функции в зависимости от типа переданного аргумента. Используйте нечто подобное вместо обеих ваших методов сложения. def __add__(self, arg): if isinstance(arg, numbers.Number): return Fff(self.x + arg, self.y + arg) else: return Fff(self.x + arg.x, self.y + arg.y)

Комментариев нет:

Отправить комментарий