Ранее мы уже говорили о том, как выполнить какой-либо код перед открытием интерактивной консоли.
Расскажу еще один способ! На самом деле, даже запустив интерпретатор в обычном режиме с выполнением скрипта из файла вы можете в любом месте активировать интерактивный режим. Или даже несколько по очереди. За это отвечает модуль code.
Как это может пригодиться?
🔸 Вам не хватает pdb и хочется больше "власти"
🔸 Нужно запросить у юзера данные в достаточно сложном виде. В этом случае можно попросить его создать что ему надо и сохранить в определённую переменную, с которой потом и работать.
🔸 Нужна изолированная среда для выполнения каких-либо действий.
🔸 Просто забавы ради😁
Запускается консоль очень просто
import code
ic = code.InteractiveConsole()
try:
ic.interact()
except SystemExit:
pass
Выход обратно на предыдущий уровень происходит как обычно, вызов функции exit() или клавиши Ctrl+D(Ctrl+Z для Windows).
Я набросал простой пример с некоторым функционалом
🔹 Меняются символы приглашения
🔹 В неймспейсы добавляются дополнительные объекты
🔹 Считается время, проведённое в интерактивном режиме
🔹 Скрипт просит юзера заполнить переменную и по выходу распечатывает её значение
Код здесь ↗️
Для запуска сохраните код в файл и запускайте как обычный скрипт.
python my_console.py
Для быстрого запуска можно сделать отдельный алиас
alias py="python3 /home/username/my_console.py"
#tricks#source
— Знаешь, одни, увидев эту кружку, скажут, что она наполовину пуста, а другие — что она наполовину полна. Мне кажется, что ты из первых. Я прав?
— А что бы ты сделал, если бы каждый день твоей жизни ничем не отличался от предыдущего, и ты бы ничего не мог с этим поделать?
— Мне на сегодня хватит.
#ВИДЕОТЕКА
#BillMurray
#GroundhogDay
— Нам нужны два очка.
— Вот что я придумал. Утка! Ты отдаешь пас этой девочке кролику…
— Понятно!
— …Она отдает его Багзу, а ты пасуешь Майку, который рвется к кольцу и забивает!
— Эй, мы играем в защите!
— Охохо, я не играю в защите. Ладно, тогда послушайте лучше Майка.
— Кто-нибудь отбирает у них мяч, передает его мне и я забиваю.
— Не потеряйте эту уверенность! Лапы и крылья в бой!
#ВИДЕОТЕКА
#SpaceJam
#КосмическийДжем
#BillMurray
#БиллМюррей
#MichaelJordan
#МайклДжордан
«Как-то раз от нечего делать я отрастил усы — просто чтобы говорить всем, что мне есть чем заняться».
Единственному и неповторимому Биллу Мюррею сегодня исполнилось 75 лет.
#ВИДЕОТЕКА
#BillMurray
#БиллМюррей
#Ghostbusters
#ОхотникиЗаПривидениями
#Scrooged
#GroundhogDay
#ДеньСурка
#SpaceJam
#КосмическийДжем
#Rushmore
#АкадемияРашмор
#LostInTranslation
#ТрудностиПеревода
#CoffeeAndCigarettes
#КофеИСигареты
#TheLifeAquaticWithSteveZissou
#ВоднаяЖизнь
#BrokenFlowers
#СломанныеЦветы
#ThePhoenicianScheme
#ФиникийскаяСхема