Защищаем исходный код обфускацией
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид с сохранением всей функциональности программы.
Цель заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека pyarmor, предназначенная именно для этого. Пример использования этого пакета в терминале представлен на картинке.
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид с сохранением всей функциональности программы.
Цель заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека pyarmor, предназначенная именно для этого. Пример использования этого пакета в терминале представлен на картинке.
Превью из длинного текста
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.
Первым аргументом передается строка, вторым указывается количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.
Первым аргументом передается строка, вторым указывается количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
🐍 Дорожная карта Python-разработчика
В нашей версии дорожной карты рассказываем, в каком порядке нужно изучать Python, чтобы пройти путь от основ до веб-разработки, тестирования, науки о данных или машинного обучения.
https://proglib.io/p/dorozhnaya-karta-python-razrabotchika-2021-10-09
В нашей версии дорожной карты рассказываем, в каком порядке нужно изучать Python, чтобы пройти путь от основ до веб-разработки, тестирования, науки о данных или машинного обучения.
https://proglib.io/p/dorozhnaya-karta-python-razrabotchika-2021-10-09
Библиотека программиста
🐍 Дорожная карта Python-разработчика
В нашей версии дорожной карты рассказываем, в каком порядке нужно изучать Python, чтобы пройти путь от основ до веб-разработки, тестирования, науки о данных или машинного обучения.
Создание и чтение изображения
В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.
Ознакомиться подробнее можно здесь.
В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.
Ознакомиться подробнее можно здесь.
Создание дочернего процесса
Получается интересный случай — в коде выполняется и
os.fork() создаёт дочерний процесс, вызывая системную функцию fork(), и возвращает PID (Process Identifier), равный PID дочернего процесса в родительском процессе и нулю в новом. На windows не работает.Получается интересный случай — в коде выполняется и
if, и else. Если не знать про os.fork() и посмотреть вывод подобного кода, то возникнет много вопросов.Что выведет код?
Anonymous Quiz
41%
1
2%
2
1%
3
1%
4
22%
1 1
19%
None
13%
Error из-за отсутствия отступа в if
Вызов отладчика 10-символьной командой
Функцией breakpoint() можно пользоваться в Python 3.6+. Она инициирует запуск сессии pdb.set_trace().
Эта команда может выглядеть как созданная исключительно для удобства (и скорее всего так оно и есть), но многими воспринимается как быстрый и красивый способ вызова отладчика.
Функцией breakpoint() можно пользоваться в Python 3.6+. Она инициирует запуск сессии pdb.set_trace().
Эта команда может выглядеть как созданная исключительно для удобства (и скорее всего так оно и есть), но многими воспринимается как быстрый и красивый способ вызова отладчика.
🔩 Полный фуллстек: пишем сайт на Django, Vue и GraphQL
Шаг за шагом пишем сайт с бэкендом на Django, фронтендом на Vue и связкой между ними на GraphQL.
https://proglib.io/p/polnyy-fullstek-pishem-sayt-na-django-vue-i-graphql-2021-07-22
Шаг за шагом пишем сайт с бэкендом на Django, фронтендом на Vue и связкой между ними на GraphQL.
https://proglib.io/p/polnyy-fullstek-pishem-sayt-na-django-vue-i-graphql-2021-07-22
Библиотека программиста
🔩 Полный фуллстек: пишем сайт на Django, Vue и GraphQL
Шаг за шагом пишем сайт с бэкендом на Django, фронтендом на Vue и связкой между ними на GraphQL. Для всех любителей Python и современной веб-разработки.