fbpx

Инвертировать значение объекта класса наследника Enum

87 просмотраОбъекты Enum
0
0 Комментариев

Я только изучаю python и столкнулся с проблемой.

Создал класс direction с перечислением возможных направлений.

Нужно создать функцию инвертирования направления.

Проблема в том что при инвертировании объекта ND инвестируется объект N.

Я понимаю что ND =N не создаёт новый объект, а лишь ссылается на объект N. Но не могу обойти это.

по итогу нужно чтобы N остался direction.up, а ND изменился на direction.down.

При этом чтоб создание объекта ND с противоположным направлением осталось внутри метода invert

from enum import Enum
class direction(Enum):
    up=1
    down=2
    left=3
    right=4
         def invert(self):
                 if self==direction.up:
            self._name_=down
            self._value_=2
        elif self==direction.down:
            self._name_=up
            self._value_=1
        elif self==direction.left:
            self._name_=right
            self._value_=4
        else:
            self._name_=left
            self._value_=3
      D=direction.up
ND=D
 print(D)
print(ND)
 ND.invert()
 print(D)
print(ND)

Почему-то отступы в коде поехали. Писал с телефона.


Добавить комментарий

1 Ответы

Python Опубликовано 25.03.2019
Напишите свой ответ на данный вопрос.
Scroll Up