имеет параметр цвет, который может быть красным, синим и белым и у него есть метод, который возвращает текуший цвет:
traffic_light.current_color()
Переменную какого типа должен возвращатьт этот метод?
Вроде, понятно, что надо сделать Enum TrafficColor и возвращать его.
Но тогда придется импортировать этот enum во все классы, которым потребуется проводить операции с результатом и это совсем неочевидная зависимость:
from TrafficLight import TrafficColor
if color == TrafficColor.WHITE:
…
можно же просто возвращать строку с цветом, но тоже так себе решение.
Как правильно поступать в таких случаях?
Почему "неочевидная"? Если метод возваращает какой-то тип и с этим типом надо работать, то логично его импортировать.
я литералы в таких случаях использую
Ну потому что у тебя есть, например, объект SelfdrivingCar Для него зависимость от цвета светофора — это неочевидно. Потому что уровень абстракции уже другой.
Почему? SelfdrivingCar же работает с TrafficLight? Почему он не должен работать и с TrafficColor?
Спасибо, тогда сделаю enum
Обсуждают сегодня