Ранее мы уже говорили о том, как выполнить какой-либо код перед открытием интерактивной консоли.
Расскажу еще один способ! На самом деле, даже запустив интерпретатор в обычном режиме с выполнением скрипта из файла вы можете в любом месте активировать интерактивный режим. Или даже несколько по очереди. За это отвечает модуль 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
March 21 – Human Rights Day in South Africa
This day commemorates the Sharpeville Massacre (1960), when police opened fire on peaceful protesters opposing the Pass Laws, killing 69 people and injuring 180.
The Pass Laws restricted black South Africans' movement, requiring them to carry passbooks with personal details, residency and work permits, and employer confirmations. These had to be presented on demand to police and officials.
On March 21, 5,000–10,000 demonstrators gathered at a police station, offering arrest for not carrying passbooks. Instead, they faced brutal repression.
Human Rights Day serves as a reminder of the fight for freedom and equality.
#HumanRightsDay#SharpevilleMassacre#Apartheid#SouthAfrica#History
This year marks 75 years of the Universal Declaration on Human Rights.
For 75 years, the UDHR has defined our key rights and been a rallying cry for Human Rights Defenders all over the world.
In #HumanRightsDay we join over 57 organisations in urging First Minister @HumzaYousaf to put #AllOurRights in law for everyone. Make the Universal Declaration a reality!
We hope @scotgov to listen to civil society concerns & make the Bill as strong as possible.
#HumanRights75#AllOurRights
#AllOurRights
今年係《世界人權宣言》通過75周年。75年來,宣言 界定咗我哋嘅關鍵權利。
今年人權日,我哋連同57個蘇格蘭公民團體去信蘇格蘭首席大臣 Humza Yousaf,促請政府引入人權法案時,投入充分資源,包括但不限於保障殘疾人士、更包容的平等對待、改善弱勢支援等,並加強與公共機構合作,增加機構對人權法案嘅認知同逐步實施相關政策。
我哋敦促蘇格蘭政府聆聽民間社會嘅聲音,讓人權公約能夠喺蘇格蘭得以實踐。
#國際人權日#人權公約#世界人權宣言#生而平等#首席大臣#蘇格蘭政府
Letter to Scot Cabinet on Human Rights
https://www.patreon.com/posts/94309170