TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Pág. 62 de 85 · 1,014 posts
Особенности статических методов Основное отличие статических методов от методов экземпляра заключается в их привязке к классу, а не к отдельному объекту. Это означает, что их можно вызывать непосредственно через класс. Статические методы не получают ссылку на экземпляр (self) или класс (cls) в качестве аргументов, что делает их независимыми от состояния объекта или класса. Следовательно, они не могут изменять состояние объекта или класса. Существует дваосновных способа определения статического метода. Менее распространенный — назначение метода классу, используя функцию staticmethod для оборачивания исходного метода. Однако более предпочтительным является использование staticmethod как декоратора, что упрощает объявление статических методов непосредственно внутри класса. #python#staticmethod
Hashtags
Использование аннотаций типов в Python Python, язык с динамическойтипизацией, позволяет работать с переменными различных типов. Иногда это может привести к ошибкам из-за неправильного использования типов . Начиная с версии 3.6, Python поддерживает аннотации типов для переменных, атрибутов классов, аргументов функций и их возвращаемых значений, что помогает улучшить читаемость кода и предотвратить ошибки, связанные с типами данных. #python#typing
Загрузка файлов асинхронно Если у нас есть список URL картинок для загрузки, использование простого цикла for позволит нам загрузить их последовательно, по одной за раз. Однако, для задач, включающих загрузку большогоколичества маленьких файлов, параллелизация может заметно ускорить процесс. Для параллелизации мы можем использовать ThreadPoolExecutor из модуля concurrent.futures. Этот инструмент позволяет выполнить функцию загрузки в нескольких параллельных потоках, где в конструкторе необходимо указать максимальное количество потоков для одновременного выполнения. С помощью метода .map(download, urls) можно развернуть функцию загрузки на каждый URL из списка, обеспечивая их параллельнуюобработку. Важно понимать, что так как загрузка файлов является IO-операцией, данный метод неускоряет выполнение кода в прямом смысле, а скорее позволяет начать загрузку следующего файла, не ожидая завершения предыдущего. #python#threading
Hashtags
Сортировка списков по ключу У списков есть метод sort(), который сортирует элементы. Также есть аргумент reverse, с помощью которого можно отсортировать в обратном порядке при значении True. Но еще есть аргумент key, отвечающий за критерий сортировки. Он принимает функцию, которая применяется к каждому элементу. Возвращаемый результат и есть критерий, по которому произойдет сортировка. В коде на картинке у нас есть список из словарей, которые содержать описания машин. И в качестве мы отсортировали список по годам их выпуска, то есть по ключу 'year'. Также вместо написания обычных функций были применены анонимные, чтобы закрепить недавнюю тему о них. #списки
Hashtags
Современный способ сериализации, десериализации и валидации данных adaptix - гибкая и легкоконфигурируемая библиотека для сериализации и десериализации данных. adaptix работает с нативными dataclass, NamedTuple, TypedDict.Ваши модели не зависят от библиотеки и не требуют наследования от каких-либо специальных классов, позволяя моделям оставаться чистыми, а вам - следовать принципу инверсии зависимостей. Также, библиотека позволяет легко создавать свои правила для конвертации данных и группировать их, соответствуя принципу DRY. Особое внимание стоит обратить на возможность преобразования стилей названий полей, что полезно в web приложениях. Приятным бонусом будет то, что adaptix до двух раз быстрее чем pydantic v2 (бенчмарки). #python#typing#adaptix
Publicado 26 ene
Нейронка от Сбера обошла GPT-3.5-turbo по качеству ответов на английском языке. На русском и так всё было хорошо. Теперь же, благодаря тесту MMLU, стало известно, что и на родном языке Шерлока Холмса правильность ответов GigaChat PRO на 6% выше, чем у разработки от OpenAI. То чувство, когда можешь в англ лучше, чем его носитель. @bugnotfeature
Работаем с атрибутами объектов Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr. По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет. Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута. На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение. #python#tips
Запись экрана в Windows с помощью Python Для записиэкрана в Windows используя Python существует несколько библиотек, однако наиболееэффективной оказалась d3dshot. Библиотека d3dshot использует системные библиотеки DXGI и Direct3D для быстрого и надежного захвата экрана. Эта библиотека идеальноподходит для создания игровых ботов. #python#d3dshot
Работа с данными в Python используя Pydantic Pydantic - это библиотека для Python, предназначенная для парсинга и валидации данных. Она использует статическую типизацию для атрибутов классов, что облегчает проверку данных при создании объектов. Этот инструмент особенно полезен при работе с JSON: он автоматизирует проверку структуры, необходимых полей и значений. Pydanticподдерживает не только стандартные типы данных, но и специализированные, такие как email, URL-адреса и номера платежных карт. Для более подробногопримера и документации можно обратиться сюда. #python#pydantic
Использование функции zip в Python Функция zip в Python формирует итератор, объединяющий элементы из несколькихсписков. Это удобно для одновременного перебора элементов несколькихсписков в цикле for или для реализации параллельнойсортировки. Пример: # Допустим, у нас есть два списка list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] # Используем функцию zip для объединения этих списков zipped = zip(list1, list2) # Теперь мы можем перебрать объединенные элементы for num, letter in zipped: print(f"Число: {num}, Буква: {letter}") # Вывод: # Число: 1, Буква: a # Число: 2, Буква: b # Число: 3, Буква: c #python#zip
Обработка видео с помощью MoviePy MoviePy - это удобный пакет для выполнения различных задач по редактированиювидео, включая обрезку и склейкуклипов, добавление видеоэффектов и редактирование аудиодорожки. Пакет достаточно прост в освоении, и базовые принципы его использования можно увидеть на примере. В данном случае, мы открываем два видеофайла, соединяем их водин, обрезаем получившийся клип, уменьшаем громкость звука и сохраняем итоговый результат. Стоит учитывать, что обработка видео, особенно больших файлов, может занять значительноевремя. MoviePy особенно полезен, когда необходимо автоматизировать обработку большого количества видео по единомуалгоритму. #python#moviepy
Управление лимитом рекурсии в Python В Python отсутствует оптимизация хвостовой рекурсии, что часто приводит к ошибке RecursionError при разработке рекурсивных алгоритмов. Однако, используя модуль sys, можно узнать и даже изменить максимально допустимую глубину рекурсии. Несмотря на это, следует быть осторожным с увеличением лимита, так как каждый вызов рекурсии потребляет значительное количество памяти. В большинстве случаев предпочтительнее использовать итеративные подходы, такие как циклы, вместо рекурсии. #python#recursion
Hashtags