pyarmor — инструмент для защиты и обфускации программ.
pyarmor позволяет зашифровать исходный код Python, скрыть имена переменных и функций, а также создавать самодостаточные исполняемые файлы. Это особенно полезно, когда вам нужно предоставить скомпилированные версии вашего кода, но вы не хотите раскрывать его структуру.
Достаточно скачать модуль и запустить команду
Таким образом, pyarmor предоставляет разработчикам инструмент для защиты и обфускации их кода, что может быть полезно в случаях, когда важно обезопасить интеллектуальную собственность или предотвратить несанкционированный доступ к коду.
Ставится командой ⚙️
pyarmor позволяет зашифровать исходный код Python, скрыть имена переменных и функций, а также создавать самодостаточные исполняемые файлы. Это особенно полезно, когда вам нужно предоставить скомпилированные версии вашего кода, но вы не хотите раскрывать его структуру.
Достаточно скачать модуль и запустить команду
pyarmor obfuscate file.py
для работыТаким образом, pyarmor предоставляет разработчикам инструмент для защиты и обфускации их кода, что может быть полезно в случаях, когда важно обезопасить интеллектуальную собственность или предотвратить несанкционированный доступ к коду.
Ставится командой ⚙️
pip3 install pyarmor
Документация и примеры кода здесь :3👍34🤡2❤1
AbstractSet — класс, который определяет абстрактный базовый класс для множественных типов данных.
AbstractSet из модуля typing представляет собой абстрактный базовый класс для множественных типов данных, таких как set, frozenset и другие классы, поддерживающие множественные операции. Он может быть использован для аннотирования переменных или параметров функций, когда ожидается объект, поддерживающий операции множеств.
В примере выше мы написали функцию которая принимает два аргумента типа AbstractSet[int], представляющих множества целых чисел. Затем мы используем операцию & для нахождения общих элементов в множествах и возвращаем результат.
Использование AbstractSet позволяет указать, что функция ожидает объекты, которые поддерживают операции множеств, независимо от конкретной реализации множества.
AbstractSet из модуля typing представляет собой абстрактный базовый класс для множественных типов данных, таких как set, frozenset и другие классы, поддерживающие множественные операции. Он может быть использован для аннотирования переменных или параметров функций, когда ожидается объект, поддерживающий операции множеств.
В примере выше мы написали функцию которая принимает два аргумента типа AbstractSet[int], представляющих множества целых чисел. Затем мы используем операцию & для нахождения общих элементов в множествах и возвращаем результат.
Использование AbstractSet позволяет указать, что функция ожидает объекты, которые поддерживают операции множеств, независимо от конкретной реализации множества.
👍18🤯5❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚71🤯21😁12❤🔥6👍4
Дескрипторы — мощный инструмент, позволяющий контролировать доступ к атрибутам объектов классов.
Дескрипторы представляют собой специальные объекты, определяющие дандер-методы, такие как
В примере выше создается класс CelsiusToFahrenheit, который является дескриптором. Этот дескриптор определяет методы
Затем создается класс Temperature, у которого есть атрибут _celsius для хранения температуры в градусах Цельсия. В этом классе создается атрибут класса fahrenheit, который использует дескриптор CelsiusToFahrenheit.
При чтении значения атрибута fahrenheit, вызывается метод
Дескрипторы представляют собой специальные объекты, определяющие дандер-методы, такие как
__get__
, __set__
и __delete__
, которые управляют чтением, записью и удалением значений атрибутов. Дескрипторы часто используются для создания вычисляемых атрибутов, валидации входных данных и других аспектов, связанных с атрибутами класса.В примере выше создается класс CelsiusToFahrenheit, который является дескриптором. Этот дескриптор определяет методы
__get__
и __set__,
которые контролируют доступ к атрибуту fahrenheit. Метод __get__
вызывается при попытке чтения атрибута, а метод set - при попытке записи значения атрибута.Затем создается класс Temperature, у которого есть атрибут _celsius для хранения температуры в градусах Цельсия. В этом классе создается атрибут класса fahrenheit, который использует дескриптор CelsiusToFahrenheit.
При чтении значения атрибута fahrenheit, вызывается метод
__get__
дескриптора, который выполняет преобразование температуры из градусов Цельсия в градусы Фаренгейта. При записи значения в атрибут fahrenheit, вызывается метод __set__
, который выполняет обратное преобразование и сохраняет значение в атрибут _celsius.👍27❤3🤔2
🐥 Задача по Python #40
Описание
Напишите функцию
Примеры
Кодом делиться через pastebin.org или repl.it.
#задачи
Описание
Напишите функцию
rgb_to_hex(r: int, g: int, b: int) -> str
, которая принимает значения красного (r), зеленого (g) и синего (b) компонентов цвета (каждое в диапазоне от 0 до 255) и возвращает строку, представляющую цвет в HEX формате.Примеры
rgb_to_hex(255, 192, 0) # ffc000Свой вариант решения в комментарии 💭
rgb_to_hex(0, 128, 255) # 0080ff
Кодом делиться через pastebin.org или repl.it.
#задачи
👍26❤2❤🔥2🔥1🤡1
Появилась статья, которая объясняет что происходит когда запускаешь print("hello world") на Python :3
👍53🤯7🌚6🔥3🤡3😁2❤1
__future__ — модуль, который позволяет программистам использовать функции и синтаксис, которые будут введены в будущих версиях языка. Это позволяет постепенно адаптировать свой код к новым изменениям и синтаксическим конструкциям, даже если текущая версия Python их ещё не поддерживает.
В примере выше мы импортировали async_annotations из модуля future, чтобы использовать аннотации типов для асинхронных функций. В более ранних версиях Python (до 3.5), асинхронные операции с использованием синтаксиса async/await не были поддержаны. Модуль future с атрибутом async_annotations позволяет добавить синтаксическую поддержку асинхронных операций с аннотациями типов для более ранних версий Python. Это может быть полезным, если вы хотите поддерживать код, который будет работать и в более старых версиях Python до перехода на более новые версии.
Подробнее тут :3
В примере выше мы импортировали async_annotations из модуля future, чтобы использовать аннотации типов для асинхронных функций. В более ранних версиях Python (до 3.5), асинхронные операции с использованием синтаксиса async/await не были поддержаны. Модуль future с атрибутом async_annotations позволяет добавить синтаксическую поддержку асинхронных операций с аннотациями типов для более ранних версий Python. Это может быть полезным, если вы хотите поддерживать код, который будет работать и в более старых версиях Python до перехода на более новые версии.
Подробнее тут :3
👍22❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
💯75😢25👍8🌚6❤🔥1
textwrap — стандартный модуль, предоставляющий инструменты для форматирования и обертывания текста в удобочитаемый вид.
textwrap позволяет автоматически разбивать текст на строки заданной ширины, добавлять отступы и выполнять другие операции, чтобы сделать текст более читаемым и оформленным.
В примере выше мы использовали функцию shorten модуля textwrap чтобы сократить текст до желаемой длины
Модуль textwrap также предоставляет другие функции для добавления отступов, выравнивания текста, удаления отступов и многое другое. Он полезен для форматирования вывода текста в различных приложениях, включая консольные утилиты, генерацию документации и создание отчетов.
Подробнее тут :3
textwrap позволяет автоматически разбивать текст на строки заданной ширины, добавлять отступы и выполнять другие операции, чтобы сделать текст более читаемым и оформленным.
В примере выше мы использовали функцию shorten модуля textwrap чтобы сократить текст до желаемой длины
Модуль textwrap также предоставляет другие функции для добавления отступов, выравнивания текста, удаления отступов и многое другое. Он полезен для форматирования вывода текста в различных приложениях, включая консольные утилиты, генерацию документации и создание отчетов.
Подробнее тут :3
👍25❤4❤🔥1🌚1
🍳 Задача по Python #41
Описание
Вам предоставляется список целых чисел и индекс n. Ваша задача - поменять местами значения первого и последнего элементов списка, второго и предпоследнего элементов списка и так далее до индекса n.
Примеры
Кодом делиться через pastebin.org или repl.it.
#задачи
Описание
Вам предоставляется список целых чисел и индекс n. Ваша задача - поменять местами значения первого и последнего элементов списка, второго и предпоследнего элементов списка и так далее до индекса n.
Примеры
reverse_indices([1, 2, 3, 4, 5, 6], 2) # [3, 2, 1, 4, 5, 6]Свой вариант решения в комментарии 💭
Кодом делиться через pastebin.org или repl.it.
#задачи
🔥12❤1👍1
🧠 Заметили ошибку в коде? Знаете, как исправить?
Даже если нет, мы поможем разобраться! Погрузитесь в мир программирования с Яндекс Лицеем! Прокачайтесь в Python, Go, Django и многом другом 🚀
Даже если нет, мы поможем разобраться! Погрузитесь в мир программирования с Яндекс Лицеем! Прокачайтесь в Python, Go, Django и многом другом 🚀
🤡73👍35❤12❤🔥7🔥5⚡2🌚2💯1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76😢14🔥3😁3🤡3❤2
В мире Python есть нечто волшебное и загадочное, что позволяет вам создавать магию в собственных классах.. Они называются "магическими методами" 😱
Эти специальные методы начинаются и заканчиваются двумя подчеркиваниями, и они предоставляют нам управление над различными аспектами объектов и операций.
Представим что у нас есть класс Vector, который представляет собой вектор(🤯) в двумерном пространстве. Для добавления двух векторов вам, возможно, захочется использовать оператор + но как объяснить Python, как складывать объекты этого класса? 😦
Здесь-то нам и пригодятся магические методы. При использовании оператора +, Python автоматически ищет метод
P.S. init это метод, который автоматически вызывается при создании нового экземпляра класса. Он используется для инициализации начальных значений атрибутов объекта и принимает как минимум один аргумент(в данном случае self), который ссылается на сам объект.
Эти специальные методы начинаются и заканчиваются двумя подчеркиваниями, и они предоставляют нам управление над различными аспектами объектов и операций.
Представим что у нас есть класс Vector, который представляет собой вектор(🤯) в двумерном пространстве. Для добавления двух векторов вам, возможно, захочется использовать оператор + но как объяснить Python, как складывать объекты этого класса? 😦
Здесь-то нам и пригодятся магические методы. При использовании оператора +, Python автоматически ищет метод
add() в о
бъектах, чтобы выполнить соответствующее действие. Для нашего класса Vector, мы можем определить метод add() для
определения сложения векторов(см. пример выше)P.S. init это метод, который автоматически вызывается при создании нового экземпляра класса. Он используется для инициализации начальных значений атрибутов объекта и принимает как минимум один аргумент(в данном случае self), который ссылается на сам объект.
👍53😐6❤1🤡1
В современном программировании одна из самых ценных валют - это время 🤑 💷
Модуль multiprocessing предоставляет инструменты для параллельного выполнения кода, позволяя использовать многопроцессорные системы и ускоряя выполнение задач.
Допустим, у нас есть задача по обработке большого количества файлов, и мы хотим выполнить обработку каждого файла параллельно для ускорения процесса. Для этого у модуля multiprocessing есть класс Pool, который управляет пулом рабочих процессов. Мы можем разделить задачу на подзадачи и выполнять их параллельно с использованием пула.
В примере выше мы используем пул процессов для одновременной(почти. GIL, всё такое) обработки файлов(по комментариям, думаю, всё понятно)
Подробнее тут :3
Модуль multiprocessing предоставляет инструменты для параллельного выполнения кода, позволяя использовать многопроцессорные системы и ускоряя выполнение задач.
Допустим, у нас есть задача по обработке большого количества файлов, и мы хотим выполнить обработку каждого файла параллельно для ускорения процесса. Для этого у модуля multiprocessing есть класс Pool, который управляет пулом рабочих процессов. Мы можем разделить задачу на подзадачи и выполнять их параллельно с использованием пула.
В примере выше мы используем пул процессов для одновременной(почти. GIL, всё такое) обработки файлов(по комментариям, думаю, всё понятно)
Подробнее тут :3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28⚡3❤2❤🔥2