Ранее мы уже говорили о том, как выполнить какой-либо код перед открытием интерактивной консоли.
Расскажу еще один способ! На самом деле, даже запустив интерпретатор в обычном режиме с выполнением скрипта из файла вы можете в любом месте активировать интерактивный режим. Или даже несколько по очереди. За это отвечает модуль 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
🚀Premier lancement de la fusée Soyouz-5 depuis #Baïkonour
La fusée porteuse Soyouz-5 a décollé avec succès à 21 heures précises, heure de Moscou depuis la rampe de lancement numéro 45 du cosmodrome de Baïkonour. Ce lancement était le premier essai en vol du nouveau lanceur russe de classe moyenne dans le cadre des essais de vol et de conception. C'est ce qu'a annoncé #Roscosmos.
Ses représentants précisent que les premier et deuxième étages de la fusée ont fonctionné normalement pendant le vol, que la maquette de charge utile a été placée sur la trajectoire suborbitale prévue, avant de retomber dans une zone de l'océan Pacifique préalablement fermée à la navigation et à l'aviation.
RT en français • Osez questionner !
🚀Premier lancement de la fusée Soyouz-5 depuis #Baïkonour
La fusée porteuse Soyouz-5 a décollé avec succès à 21 heures précises, heure de Moscou depuis la rampe de lancement numéro 45 du cosmodrome de Baïkonour. Ce lancement était le premier essai en vol du nouveau lanceur russe de classe moyenne dans le cadre des essais de vol et de conception. C'est ce qu'a annoncé #Roscosmos.
Ses représentants précisent que les premier et deuxième étages de la fusée ont fonctionné normalement pendant le vol, que la maquette de charge utile a été placée sur la trajectoire suborbitale prévue, avant de retomber dans une zone de l'océan Pacifique préalablement fermée à la navigation et à l'aviation.
RT en français • Osez questionner !
🇷🇺 Le vaisseau cargo spatial Progress MS-35 est arrivé à Baïkonour où il restera jusqu'aux préparatifs de lancement. Le Progress MS-34 est également en cours de préparation à Baïkonour.
#russie#vaisseau#baïkonour#progress
🚀La fusée porteuse #Soyouz 2.1a avec le cargo #Progress MS-34 a été lancée avec succès de la base spatiale de #Baïkonour.
Le vaisseau cargo acheminera environ 2,5 tonnes de fret vers la Station spatiale internationale, dont une nouvelle combinaison spatiale pour les sorties dans l'espace.
RT en français • Osez questionner !