Ранее мы уже говорили о том, как выполнить какой-либо код перед открытием интерактивной консоли.
Расскажу еще один способ! На самом деле, даже запустив интерпретатор в обычном режиме с выполнением скрипта из файла вы можете в любом месте активировать интерактивный режим. Или даже несколько по очереди. За это отвечает модуль 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
#HongKong’s #ChannelC has been taken over by creditors after police froze its bank accounts, forcing it to halt operations. Meanwhile, Hong Kong has fallen to 140th place in the World Press Freedom Index, entering the red zone for the 1st time.
#Beijing-backed media are attacking Reporters Without Borders, trying to discredit the ranking while the #CCP ensures Hong Kongers cannot access independent news. #Pressfreedom is collapsing, replaced by state-controlled narratives.
#CCPControl#MediaSuppression
#香港 獨立媒體 #ChannelC 因警方凍結銀行戶口被債權人接管,被迫停止運作。同時,香港在世界新聞自由指數中跌至第140位,首次進入紅色區域 。
北京支持的媒體攻擊無國界記者 ,試圖抹黑排名,而 #中共 確保香港人無法獲取獨立新聞 。#新聞自由 正在崩塌,取而代之的是國家控制的敘述。
#中共控制#媒體打壓