получается сложить один объект с другим, а если сложить с другим выходим ошибка
# Таблица преобразований:
# Вода + Воздух = Шторм
# Вода + Огонь = Пар
# Вода + Земля = Грязь
# Воздух + Огонь = Молния
# Воздух + Земля = Пыль
# Огонь + Земля = Лава
# Сложение элементов реализовывать через __add__
# Если результат не определен - то возвращать None
# Вывод элемента на консоль реализовывать через __str__
class Aqua:
def __str__(self):
return 'Вода'
def __add__(self, other):
if Fire() + Aqua():
return Vapor(part1=self, part2=other)
elif Aqua() + Air():
return Storm(part1=self, part2=other)
elif Aqua()+Earth():
return Storm(part1=self, part2=other)
class Air:
def __str__(self):
return 'Воздух'
def __add__(self, other):
if Air() + Aqua():
return Storm(part1=self, part2=other)
elif Air() + Fire():
return Lightning(part1=self, part2=other)
elif Air() + Earth():
return Dust(part1=self, part2=other)
class Earth:
def __str__(self):
return 'Земля'
def __add__(self, other):
if Earth() + Aqua():
return Dirt(part1=self, part2=other)
elif Earth() + Fire():
return Dirt(part1=self, part2=other)
elif Earth() + Air():
return Lava(part1=self, part2=other)
class Fire:
def __str__(self):
return 'Огонь'
def __add__(self, other):
if Fire() + Aqua():
return Vapor(part1=self, part2=other)
elif Fire()+Air():
return Dust(part1=self, part2=other)
elif Earth() + Fire():
return Dirt(part1=self, part2=other)
class Storm:
def __init__(self, part1, part2):
self.part1 = part1
self.part2 = part2
def __str__(self):
return 'Шторм'
def __add__(self, other):
return Storm(part1=self, part2=other)
class Vapor:
def __init__(self, part1, part2):
self.part1 = part1
self.part2 = part2
def __str__(self):
return 'Пар'
class Lightning:
def __init__(self, part1, part2):
self.part1 = part1
self.part2 = part2
def __str__(self):
return 'Молния'
class Dust:
def __init__(self, part1, part2):
self.part1 = part1
self.part2 = part2
def __str__(self):
return 'Пыль'
class Dirt:
def __init__(self, part1, part2):
self.part1 = part1
self.part2 = part2
def __str__(self):
return 'Грязь'
class Lava:
def __init__(self, part1, part2):
self.part1 = part1
self.part2 = part2
def __str__(self):
return 'Лава'
у меня выходит ошибка RecursionError: maximum recursion depth exceeded while calling a Python object