Найти - Пользователи
Полная версия: Модуль Color v2.0
Начало » Python для новичков » Модуль Color v2.0
1
python335
Впрочем, 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')
JOHN_16
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)
вся эта конструкция хрень полная!
В чем такая особенность цвета under ? Он присутствует в словаре - зачем его отдельно обрабатывать ?
Все это можно заменить простым:
 print(fc + colors.get(color, colors['def']) + text)
4) существует баг - если последняя выведенная на экран строка не имела color из доступных - то в консоли продолжает печатать цветом
FishHook
Сначала внимательно прочитать вот это
Потом ответить на вопрос: где же я нарушаю принцип DRY и исправить.
python335
Во-первых)
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)

Но все-равно - код хороший! Не надо выпендриваться!
JOHN_16
Я хотел помочь, а тут вот такое в ответ получаю.
Посмеялся зато от души)
FishHook
Постольку поскольку поциент не желает воспринимать критику, дальнейшего смысла в этом с позволения сказать code-review нет.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB