Почему моя лямбда, похоже, ничего не делает при вызове?

#python #lambda #rgb

#python #лямбда #rgb

Вопрос:

У меня есть лямбда-код, использующий sty, который пытается создать цветной текст в функции, которую я могу просто вставить куда угодно. Однако, когда я запускаю свой код, функция не возвращает ничего (даже ничего!), И я не понимаю почему. Образец теста:

 from sty import fg, bg
colored = lambda entered_string, rgb: fg(rgb[0], rgb[1], rgb[2])   bg(128, 128, 128)   entered_string   fg.rs

print(colored('hello world', (0, 255, 0)))
  

Ожидаемый (и желаемый) результат будет «hello world», напечатанный зеленым цветом. Однако, как я уже говорил ранее, ничего не печатается, даже ‘None’! Он просто переходит прямо к «Процесс завершен с кодом выхода 0».

Комментарии:

1. что делают функции fg and bg ?

2. Это не будет иметь ничего общего с лямбдами. fg.rs Должно быть rs.fg , хотя?

3. fg задает цвет текста, bg задает цвет фона, если вы поместите .rs после любого из них, он сбрасывается до значения по умолчанию.

4. @Carcigenicate нет. Я получил NameError: name 'rs' is not defined1

5. На самом деле, не удается воспроизвести. Этот код работает для меня. Наиболее вероятным объяснением является то, что ваша консоль не поддерживает escape-коды ANSII, которые, вероятно, используются за кулисами.

Ответ №1:

Я думаю, что вы запускаете этот код в неправильной среде. В записной книжке jupyter он соответствует описанию желаемого результата:

введите описание изображения здесь

Комментарии:

1. интересно; он работал раньше, но потом просто случайно остановился. Я предположил, что что-то перепутал и не смог воспроизвести то, что у меня было раньше