170 похожих чатов

Подскажите, как правильно передавать перечисляемые параметры между классами. Например, объект светофор

имеет параметр цвет, который может быть красным, синим и белым и у него есть метод, который возвращает текуший цвет:
traffic_light.current_color()

Переменную какого типа должен возвращатьт этот метод?

Вроде, понятно, что надо сделать Enum TrafficColor и возвращать его.
Но тогда придется импортировать этот enum во все классы, которым потребуется проводить операции с результатом и это совсем неочевидная зависимость:

from TrafficLight import TrafficColor

if color == TrafficColor.WHITE:



можно же просто возвращать строку с цветом, но тоже так себе решение.

Как правильно поступать в таких случаях?

5 ответов

13 просмотров

Почему "неочевидная"? Если метод возваращает какой-то тип и с этим типом надо работать, то логично его импортировать.

я литералы в таких случаях использую

Nastya-Medveda Автор вопроса
Влад Каверов
Почему "неочевидная"? Если метод возваращает какой...

Ну потому что у тебя есть, например, объект SelfdrivingCar Для него зависимость от цвета светофора — это неочевидно. Потому что уровень абстракции уже другой.

Nastya Medveda
Ну потому что у тебя есть, например, объект Selfdr...

Почему? SelfdrivingCar же работает с TrafficLight? Почему он не должен работать и с TrafficColor?

Nastya-Medveda Автор вопроса

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
48
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Есть тут те у кого дети есть + 2 работы + в зал ходят + в семейной жизни все хорошо?
Abdul-Aziz M.
13
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Карта сайта