Форум сайта python.su
-8
Впрочем, color v1.0 был вообще никакой.
Но я все поменял! Прошу прокомментировать!
# Вот он)) def cprint(text, color='def'): str = '' fc = '\033[' colors = {'def': '0m', 'red': '91m', 'under': '04m', 'green': '32m', 'blue': '94m', 'cyan': '96m', 'yellow': '93m', 'magenta': '95m', 'grey': '90m' } if color not in colors: # Покороче print(str + fc + colors['def'] + text) else: if color == 'under': print(str + fc + colors['under'] + text) else: print(str + fc + colors[color] + text) def help(): print('Цвета:' '\033[91m - red -\n' '\033[94m - blue -\n' '\033[96m - cyan -\n' '\033[93m - yellow \n' '\033[95m - magenta -\n' '\033[32m - green -\n\033[0m' ' - \033[04munder\033[0m -\n' '\033[90m - grey -\n')
Отредактировано python335 (Окт. 20, 2016 16:25:37)
Офлайн
221
1) переменная str - вообще никак не участвует в процессе - за коим чертом она там? но это еще фигня по сравнению со следующим пунктом
2) str - это внутренний класс для преобразования объекта в строку. Вы его переопределили как переменную - не стоит так делать. Объяснять надо почему ? Надеюсь что нет.
3)
python335вся эта конструкция хрень полная!if color not in colors: # Покороче print(str + fc + colors['def'] + text) else: if color == 'under': print(str + fc + colors['under'] + text) else: print(str + fc + colors[color] + text)
print(fc + colors.get(color, colors['def']) + text)
Отредактировано JOHN_16 (Окт. 20, 2016 18:04:08)
Офлайн
568
Сначала внимательно прочитать вот это
Потом ответить на вопрос: где же я нарушаю принцип DRY и исправить.
Офлайн
-8
Во-первых)
str не обязательная переменная - ее можно заменить допустим на strange1
Во-вторых)
Да-да я чуть-чуть наложал! Можнобыло так:
if color not in colors: # Покороче print(strange1 + fc + colors['def'] + text) else: if color == 'under': print(strange1 + fc + colors[color] + text) else: print(strange1 + fc + colors[color] + text)
Отредактировано python335 (Окт. 20, 2016 18:46:51)
Офлайн
221
Я хотел помочь, а тут вот такое в ответ получаю.
Посмеялся зато от души)
Офлайн
568
Постольку поскольку поциент не желает воспринимать критику, дальнейшего смысла в этом с позволения сказать code-review нет.
Офлайн