-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpolymorph.py
More file actions
31 lines (26 loc) · 1.75 KB
/
polymorph.py
File metadata and controls
31 lines (26 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""
Попробуйте самостоятельно перегрузить оператор сложения.
Для его перегрузки используется метод __add__().
Он вызывается, когда объекты класса, имеющего данный метод, фигурируют в операции сложения, причем с левой стороны.
Это значит, что в выражении a + b у объекта a должен быть метод __add__().
Объект b может быть чем угодно, но чаще всего он бывает объектом того же класса.
Объект b будет автоматически передаваться в метод __add__() в качестве второго аргумента (первый – self).
Отметим, в Python также есть правосторонний метод перегрузки сложения - __radd__().
Согласно полиморфизму ООП, возвращать метод __add__() может что угодно.
Может вообще ничего не возвращать, а "молча" вносить изменения в какие-то уже существующие объекты.
Допустим, в вашей программе метод перегрузки сложения будет возвращать новый объект того же класса.
"""
class NewClass1:
def __init__(self):
pass
def __add__(self, value):
value = NewClass1()
return value
class NewClass2:
def __init__(self):
pass
value1 = NewClass1()
value2 = NewClass2()
value3 = value1 + value2
list = [value1, value2,value3]
print(list)