Здравствуйте, пытаюсь разобраться в специальных методах у классов
Использую:
Проблема в следующем:
При вызове специального метода __add__ в классе на срабатывает оператор if
От функции print хочу добиться того, чтобы при сложении Air() + Water() результат был 'Шторм'
Использую:
- Windows 7
- Python 3.8
Проблема в следующем:
При вызове специального метода __add__ в классе на срабатывает оператор if
От функции print хочу добиться того, чтобы при сложении Air() + Water() результат был 'Шторм'
Python:
class Water:
""" Вода """
def __str__(self):
return 'Вода'
def __add__(self, other):
if other == Air():
new_element = Storm()
# elif other == Fire():
# new_element = Steam()
# elif other == Earth():
# new_element = Mud()
else:
new_element = None
return new_element
class Air:
""" Воздух """
def __str__(self):
return 'Воздух'
def __add__(self, other):
if other == Water():
new_element = Storm()
# elif other == Fire():
# new_element = Lightning()
# elif other == Earth():
# new_element = Dust()
else:
new_element = None
return new_element
class Storm:
def __str__(self):
return 'Шторм'
print( Air(), '+' ,Water(), '=', Air() + Water())