Представляю вашему вниманию самый странный код, который позволяет манипулировать стектрейсом.
Если кто не понял — объясняю, перехватывают исключения и поднимают raise, с той целью, чтобы это новое исключение, прилепить к старому в traceback. К какому исключению лепить новую ошибку, указываем в from:
raise RuntimeError() from err
Если вызвать следующий код, то будет подниматься RuntimeError игнорируя исключение на уровень выше:
raise RuntimeError() from None
Вы что-то поняли?)
😁 - Нет
🔥 - Да
Если кто не понял — объясняю, перехватывают исключения и поднимают raise, с той целью, чтобы это новое исключение, прилепить к старому в traceback. К какому исключению лепить новую ошибку, указываем в from:
raise RuntimeError() from err
Если вызвать следующий код, то будет подниматься RuntimeError игнорируя исключение на уровень выше:
raise RuntimeError() from None
Вы что-то поняли?)
😁 - Нет
🔥 - Да
😁135🔥38🤔8👍4🤯1
Дополнение к видео выше.
В Python есть несколько исключений, которые не могут быть перехвачены классом Exception. Например:
- KeyboardInterrupt: это исключение возникает, когда пользователь прерывает выполнение программы, нажимая Ctrl+C
- SystemExit: это исключение вызывается через sys.exit(), которая используется для выхода из интерпретатора Python
- GeneratorExit: Это исключение вызывается при закрытии генератора или сопрограммы
Они наследуются от класса BaseException, который является родительским классом Exception. Поэтому Exception не сможет их обработать.
Чтобы поймать эти исключения, вы можете использовать класс BaseException как универсальный обработчик исключений, или вы можете перехватывать каждое исключение по отдельности.
В Python есть несколько исключений, которые не могут быть перехвачены классом Exception. Например:
- KeyboardInterrupt: это исключение возникает, когда пользователь прерывает выполнение программы, нажимая Ctrl+C
- SystemExit: это исключение вызывается через sys.exit(), которая используется для выхода из интерпретатора Python
- GeneratorExit: Это исключение вызывается при закрытии генератора или сопрограммы
Они наследуются от класса BaseException, который является родительским классом Exception. Поэтому Exception не сможет их обработать.
Чтобы поймать эти исключения, вы можете использовать класс BaseException как универсальный обработчик исключений, или вы можете перехватывать каждое исключение по отдельности.
🔥29👍8
🥸 Очень часто на почту прилетают письма с попыткой развести на открытие файла. Пишу пост с целью уберечь вас от подобных инцидентов.
Вам могут предложить абсолютно всё что угодно, и скинуть якобы документ или видео, которое надо посмотреть, чтобы продолжить диалог.
Но когда такой архив открываешь, то видишь там исполняемый файл в различных форматах, это может быть: exe, scr, bin и т.д.
Никогда не открывайте такие файлы, а желательно заведите отдельную виртуальную машину для открытия любых подобных файлов. В ином случае отработает вирус и сворует ваши данные.
Чтобы дать ответную реакцию, можете залить их вирус на VirusTotal и подобные сканеры, чтобы испортить им сигнатуры, за чистку которых они платят немалые деньги.
Вам могут предложить абсолютно всё что угодно, и скинуть якобы документ или видео, которое надо посмотреть, чтобы продолжить диалог.
Но когда такой архив открываешь, то видишь там исполняемый файл в различных форматах, это может быть: exe, scr, bin и т.д.
Никогда не открывайте такие файлы, а желательно заведите отдельную виртуальную машину для открытия любых подобных файлов. В ином случае отработает вирус и сворует ваши данные.
Чтобы дать ответную реакцию, можете залить их вирус на VirusTotal и подобные сканеры, чтобы испортить им сигнатуры, за чистку которых они платят немалые деньги.
😁33👍31🤯1
Как и обещал, прикрепляю код, для формирования qr-кода в памяти.
В дальнейшем мы можем передавать этот файл практически любым образом, без необходимости записывать его на диск.
Об этом примере говорил в следующем видео.
Также напоминаю, что после 1000 лайков под этим видео, сделаю отдельный материал о mmap, который позволяет работать с очень большими файлами.
В дальнейшем мы можем передавать этот файл практически любым образом, без необходимости записывать его на диск.
Об этом примере говорил в следующем видео.
Также напоминаю, что после 1000 лайков под этим видео, сделаю отдельный материал о mmap, который позволяет работать с очень большими файлами.
🔥41👍20😁1
🐧 Пример генерации энтропии
В данном случае используется SystemRandom, который является более безопасным вариантом создания случайных чисел, так как он основан на встроенном в систему генераторе чисел. В каждой отдельной системе этот генератор будет отличаться, и соответственно это выдаст максимально рандомную последовательность.
Если вам нужно сгенерировать шум, который должен быть максимально случайным, то SystemRandom поможет это сделать.
В данном случае используется SystemRandom, который является более безопасным вариантом создания случайных чисел, так как он основан на встроенном в систему генераторе чисел. В каждой отдельной системе этот генератор будет отличаться, и соответственно это выдаст максимально рандомную последовательность.
Если вам нужно сгенерировать шум, который должен быть максимально случайным, то SystemRandom поможет это сделать.
🔥24👍5
⬆️ Несколько примеров готовых функций
Однако стоит добавить, хотя SystemRandom безопасней других подходов, и часто он считается почти что лучшим решением в Python по генерации энтропии, но все же он не гарантирует 100% защиту.
Если вам не нужно генерировать безопасные случайные числа, тогда лучше использовать другие методы, так как SystemRandom работает медленней, потому что содержит более сложный алгоритм генерации.
Завтра сделаю пост, где покажу еще 1 пример по генерации безопасных случайных чисел на основе криптографического генератора CSPRNG. Он специально разработан для обеспечения высокого уровня безопасности при генерации случайных чисел, особенно в криптографических целях.
Если поддерживаете идею, влупите 🔥 ;)
Однако стоит добавить, хотя SystemRandom безопасней других подходов, и часто он считается почти что лучшим решением в Python по генерации энтропии, но все же он не гарантирует 100% защиту.
Если вам не нужно генерировать безопасные случайные числа, тогда лучше использовать другие методы, так как SystemRandom работает медленней, потому что содержит более сложный алгоритм генерации.
Завтра сделаю пост, где покажу еще 1 пример по генерации безопасных случайных чисел на основе криптографического генератора CSPRNG. Он специально разработан для обеспечения высокого уровня безопасности при генерации случайных чисел, особенно в криптографических целях.
Если поддерживаете идею, влупите 🔥 ;)
🔥77🤯2