Метаклассы
Метаклассы в Python — это классы, которые определяют создание, поведение и модификацию классов. В языке Python метаклассы используются для манипуляции с классами как объектами.
В Python метаклассы определяются путем создания класса, который наследуется от type. type является метаклассом по умолчанию для всех классов в Python. При создании нового класса, интерпретатор Python проверяет наличие метакласса и, если он найден, использует его для создания класса.
В этом примере мы определяем метакласс MyMeta, который наследуется от type. Метод __new__ метакласса при создании класса и позволяет изменять атрибуты класса перед его созданием. В данном примере мы добавляем новый метод greeting в атрибуты класса.
Затем мы определяем класс MyClass, который использует метакласс MyMeta с помощью аргумента metaclass при его создании. Когда мы создаем экземпляр класса MyClass и вызываем метод greeting, будет выведено сообщение "Hello, World!".
#код
Метаклассы в Python — это классы, которые определяют создание, поведение и модификацию классов. В языке Python метаклассы используются для манипуляции с классами как объектами.
В Python метаклассы определяются путем создания класса, который наследуется от type. type является метаклассом по умолчанию для всех классов в Python. При создании нового класса, интерпретатор Python проверяет наличие метакласса и, если он найден, использует его для создания класса.
В этом примере мы определяем метакласс MyMeta, который наследуется от type. Метод __new__ метакласса при создании класса и позволяет изменять атрибуты класса перед его созданием. В данном примере мы добавляем новый метод greeting в атрибуты класса.
Затем мы определяем класс MyClass, который использует метакласс MyMeta с помощью аргумента metaclass при его создании. Когда мы создаем экземпляр класса MyClass и вызываем метод greeting, будет выведено сообщение "Hello, World!".
#код
❤11🤯9👍3🎉1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💬🦙 LlamaIndex: создаем чат-бота без боли и страданий
В этой статье рассмотрим мощный фреймворк для работы с большими языковыми моделями LlamaIndex: узнаем, как настроить и использовать LlamaIndex, и увидим его в действии на примере поиска ответа в заданном тексте
🔗 Читать статью
🔗 Зеркало
В этой статье рассмотрим мощный фреймворк для работы с большими языковыми моделями LlamaIndex: узнаем, как настроить и использовать LlamaIndex, и увидим его в действии на примере поиска ответа в заданном тексте
🔗 Читать статью
🔗 Зеркало
🤔8👍5😁3
OnnxStream: минимизация потребления памяти при генерации изображений
Задача — запустить Stable Diffusion, включающую большую трансформирующую модель c почти 1 миллиардом параметров, на Raspberry Pi Zero 2 с 512 МБ RAM, не добавляя дополнительного пространства подкачки и не выгружая промежуточные результаты на диск. Рекомендуемый минимальный объём RAM/VRAM для Stable Diffusion составляет 8 ГБ.
Читать статью
Задача — запустить Stable Diffusion, включающую большую трансформирующую модель c почти 1 миллиардом параметров, на Raspberry Pi Zero 2 с 512 МБ RAM, не добавляя дополнительного пространства подкачки и не выгружая промежуточные результаты на диск. Рекомендуемый минимальный объём RAM/VRAM для Stable Diffusion составляет 8 ГБ.
Читать статью
👍5❤1
❗«Библиотека программиста» в поиске контент-менеджера для ведения телеграм-каналов
Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем:
👉Data Science
👉Frontend
👉мобильная разработка
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Подробнее о вакансии и форма для отклика — по ссылке.
Ждем вас в команде!
Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем:
👉Data Science
👉Frontend
👉мобильная разработка
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Подробнее о вакансии и форма для отклика — по ссылке.
Ждем вас в команде!
👍5😁2
Протоколы в Python
В Python 3.8. появилась новая примечательная возможность — протоколы (protocols). Протоколы — это альтернатива абстрактным базовым классам (abstract base classes, ABC). Они позволяют пользоваться структурной подтипизацией (structural subtyping), то есть — осуществлять проверку совместимости классов исключительно на основе анализа их атрибутов и методов.
Смотреть статью
В Python 3.8. появилась новая примечательная возможность — протоколы (protocols). Протоколы — это альтернатива абстрактным базовым классам (abstract base classes, ABC). Они позволяют пользоваться структурной подтипизацией (structural subtyping), то есть — осуществлять проверку совместимости классов исключительно на основе анализа их атрибутов и методов.
Смотреть статью
👍1
Nested Sets (вложенные множества)
Это способ организации иерархических данных, где каждый узел дерева представлен парой чисел, определяющих диапазон значений.
Каждая категория представлена объектом, содержащим поля "ID", "Название", "Левая граница" и "Правая граница". "Левая граница" и "Правая граница" определяют диапазон значений, которые охватывают поддерево данной категории.
Преимущество использования Nested Sets заключается в том, что мы можем эффективно извлекать всех потомков узла, находить родителей и определять уровень вложенности с помощью простых операций сравнения.
В этом примере мы находим всех потомков категории "Компьютеры".
*При изменении структуры дерева требуется обновление левых и правых границ всех связанных категорий.
#код
Это способ организации иерархических данных, где каждый узел дерева представлен парой чисел, определяющих диапазон значений.
Каждая категория представлена объектом, содержащим поля "ID", "Название", "Левая граница" и "Правая граница". "Левая граница" и "Правая граница" определяют диапазон значений, которые охватывают поддерево данной категории.
Преимущество использования Nested Sets заключается в том, что мы можем эффективно извлекать всех потомков узла, находить родителей и определять уровень вложенности с помощью простых операций сравнения.
В этом примере мы находим всех потомков категории "Компьютеры".
*При изменении структуры дерева требуется обновление левых и правых границ всех связанных категорий.
#код
👍17❤2
Данные о памяти
Благодаря пакету shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.
#код
Благодаря пакету shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.
#код
❤6👍5
🤯Что такое ансамбль методов? А аугментация данных?
Готовимся к собеседованиям по Data Science и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для специалистов по Data Science и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по Data Science — тут мы готовимся к интервью
👉Библиотека задач по Data Science — тут решаем задачи, проходим тесты и изучаем код
Готовимся к собеседованиям по Data Science и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для специалистов по Data Science и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по Data Science — тут мы готовимся к интервью
👉Библиотека задач по Data Science — тут решаем задачи, проходим тесты и изучаем код
👍3
Асинхронные микросервисы на Python
Микросервисы — это парадигма, где приложение разбивается на небольшие независимые компоненты, каждый из которых отвечает за конкретную функцию.
Смотреть статью
Микросервисы — это парадигма, где приложение разбивается на небольшие независимые компоненты, каждый из которых отвечает за конкретную функцию.
Смотреть статью
Очередной #дайджест по Python:
✍️ Как сделать контекстное окно на 100K в большой языковой модели: обо всех фокусах в одном посте
В статье рассмотрены приёмы, позволяющие ускорить обучение больших языковых моделей (LLM) и нарастить в них логический вывод.
✍️ Как получить доступ к данным Ethereum смарт-контракта в real-time из Python
Автор рассказывает про инструменты для доступа к данным на блокчейне, которые "больше похожи на хирургический скальпель (сабграфы The Graph), чем на швейцарский нож (доступ к RPC ноде) или, скажем, молоток (готовые API от компаний-разработчиков)".
✍️ Асинхронные микросервисы на Python
Микросервисы — это парадигма, где приложение разбивается на небольшие независимые компоненты, каждый из которых отвечает за конкретную функцию. Это как отделы в офисе, каждый офис — это отдельный сервис, который может быть разработан, масштабирован и развернут независимо.
✍️ Как Python упрощает жизнь тестировщикам КОМПАС-3D
Александр Логунов, инженер по тестированию КОМПАС-3D, рассказывает, как при минимальных усилиях облегчить тестирование с помощью инструментов Python, а также приводит примеры уже реализованных задач.
✍️ Быстрые дашборды на Python с помощью DashExpress
Эта статья для тех, кто ищет простой и быстрый способ делать полноценные дашборды на python и ad-hoc дашборды прямо в jupiter notebook. А так же для всех, кто интерсуется Plotly Dash.
✍️ Как сделать контекстное окно на 100K в большой языковой модели: обо всех фокусах в одном посте
В статье рассмотрены приёмы, позволяющие ускорить обучение больших языковых моделей (LLM) и нарастить в них логический вывод.
✍️ Как получить доступ к данным Ethereum смарт-контракта в real-time из Python
Автор рассказывает про инструменты для доступа к данным на блокчейне, которые "больше похожи на хирургический скальпель (сабграфы The Graph), чем на швейцарский нож (доступ к RPC ноде) или, скажем, молоток (готовые API от компаний-разработчиков)".
✍️ Асинхронные микросервисы на Python
Микросервисы — это парадигма, где приложение разбивается на небольшие независимые компоненты, каждый из которых отвечает за конкретную функцию. Это как отделы в офисе, каждый офис — это отдельный сервис, который может быть разработан, масштабирован и развернут независимо.
✍️ Как Python упрощает жизнь тестировщикам КОМПАС-3D
Александр Логунов, инженер по тестированию КОМПАС-3D, рассказывает, как при минимальных усилиях облегчить тестирование с помощью инструментов Python, а также приводит примеры уже реализованных задач.
✍️ Быстрые дашборды на Python с помощью DashExpress
Эта статья для тех, кто ищет простой и быстрый способ делать полноценные дашборды на python и ad-hoc дашборды прямо в jupiter notebook. А так же для всех, кто интерсуется Plotly Dash.
👍3
Какой сертификат вы бы посоветовали получить?
#интерактив
#интерактив
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐍🎸 Курс Django: Веб-приложение на основе XLSX вместо базы данных
Покажем, как Django работает с файлами JSON, CSV, YAML, XLSX, разберемся с настройками media, и напишем приложение, которое использует XLSX (или Google Sheets) для загрузки данных.
🔗 Читать статью
🔗 Зеркало
Покажем, как Django работает с файлами JSON, CSV, YAML, XLSX, разберемся с настройками media, и напишем приложение, которое использует XLSX (или Google Sheets) для загрузки данных.
🔗 Читать статью
🔗 Зеркало
👍8❤7🎉4
Весь август бесплатный IT-интенсив про алгоритмы и структуры данных
👀 Ведущие эксперты из крупных IT-компаний поделятся опытом успешного прохождения собеседований на позицию разработчика. А также расскажут простым языком о NP-трудных задачах и графах.
Регистрируйтесь по ссылке
😎На вебинарах вас ждет много практики и интерактива!
Программа интенсива:
🗓️ 14 августа, «NP-трудные задачи: почему их плохо решают».
🎙️Спикер: Дмитрий Коротенко, ML specialist at Yandex, Ex BusDev at Alfa Bank.
🗓️ 22 августа, «Графы: алгоритмы и структуры данных на Python».
🎙️Спикер: Иван Потапов, Staff machine learning engineer at Sharechat.
🗓️ 29 августа, «Собеседование на разработчика: разбор задач и ошибок».
🎙️Спикер: Алексей Бочкарев, Engineering Manager at Meta*
Зарегистрироваться и ознакомится с подробной программой можно по ссылке: https://proglib.io/w/98b75954
До встречи на вебинарах!!
*Компания Meta признана в РФ экстремистской и запрещена
👀 Ведущие эксперты из крупных IT-компаний поделятся опытом успешного прохождения собеседований на позицию разработчика. А также расскажут простым языком о NP-трудных задачах и графах.
Регистрируйтесь по ссылке
😎На вебинарах вас ждет много практики и интерактива!
Программа интенсива:
🗓️ 14 августа, «NP-трудные задачи: почему их плохо решают».
🎙️Спикер: Дмитрий Коротенко, ML specialist at Yandex, Ex BusDev at Alfa Bank.
🗓️ 22 августа, «Графы: алгоритмы и структуры данных на Python».
🎙️Спикер: Иван Потапов, Staff machine learning engineer at Sharechat.
🗓️ 29 августа, «Собеседование на разработчика: разбор задач и ошибок».
🎙️Спикер: Алексей Бочкарев, Engineering Manager at Meta*
Зарегистрироваться и ознакомится с подробной программой можно по ссылке: https://proglib.io/w/98b75954
До встречи на вебинарах!!
*Компания Meta признана в РФ экстремистской и запрещена
❤10👍5
Напишите функцию, которая будет принимать список nums, содержащий числа в диапазоне от 1 до 100, и возвращать отсортированный список чисел, которые в списке nums встречались дважды.
Примеры:
duplicate_nums([1, 2, 3, 4, 3, 5, 6])
➞ [3]
duplicate_nums([81, 72, 43, 72, 81, 99, 99, 100, 12, 54])
➞ [72, 81, 99]
duplicate_nums([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
➞ None
Примечания:
— никакое число не будет встречаться в nums трижды и более раз,
— если никакое число в nums не встречалось дважды, функция должна вернуть None.
#вопросы_с_собеседований
Примеры:
duplicate_nums([1, 2, 3, 4, 3, 5, 6])
➞ [3]
duplicate_nums([81, 72, 43, 72, 81, 99, 99, 100, 12, 54])
➞ [72, 81, 99]
duplicate_nums([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
➞ None
Примечания:
— никакое число не будет встречаться в nums трижды и более раз,
— если никакое число в nums не встречалось дважды, функция должна вернуть None.
#вопросы_с_собеседований
❤12👍12😁1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐼 ТОП-5 функций Pandas 2.0: Data Science специалисты отправятся «в утиль»?
Все новые функции в Pandas 2.0 для анализа данных. Опробуем на популярных пакетах: ydata-profiling, matplotlib, seaborn и scikit-learn.
🔗 Читать статью
🔗 Зеркало
Все новые функции в Pandas 2.0 для анализа данных. Опробуем на популярных пакетах: ydata-profiling, matplotlib, seaborn и scikit-learn.
🔗 Читать статью
🔗 Зеркало
❤12👍3
Сколько времени в рабочий день тратите на разработку?
#интерактив
#интерактив
❤12👍1
Удаляем файл из папки на компьютере
Для удаления файла из папки на ПК в Python можно использовать модуль os.
Здесь сначала мы импортируем модуль os. Затем указываем полный путь к удаляемому файлу в переменной file_path. С помощью функции os.path.exists() проверяем, существует ли файл по указанному пути.
Если файл существует, мы удаляем его с помощью функции os.remove(). В противном случае выводим информацию, что такой файл не найден.
#код
Для удаления файла из папки на ПК в Python можно использовать модуль os.
Здесь сначала мы импортируем модуль os. Затем указываем полный путь к удаляемому файлу в переменной file_path. С помощью функции os.path.exists() проверяем, существует ли файл по указанному пути.
Если файл существует, мы удаляем его с помощью функции os.remove(). В противном случае выводим информацию, что такой файл не найден.
#код
👍14❤13🤯2
Очередной #дайджест по Python:
🐍 Менеджеры контекста в Python
Самый простой и красивый способ написать менеджер контекста – это воспользоваться декоратором функции @contextmanager, написав функцию как генератор.
🐍 Что происходит, когда запускаешь «Hello World» в Linux
🐍 Как Python использует сборку мусора для эффективного управления памятью
В Python мы часто думаем о переменной как о метке для значения. Однако, если говорить точнее, то переменная на самом деле указывает на объект, который хранит значение.
🐍 Как правильно дифференцировать дискретные функции
Под термином численное дифференцирование часто понимают три разные вещи (цитата по numdifftools) — символьное (символическое) дифференцирование, вычисление производной от функции, заданной аналитически, и вычисление производной от функции, заданной набором данных.
🐍 Я люблю питон, и вот почему он меня бесит
🐍 Менеджеры контекста в Python
Самый простой и красивый способ написать менеджер контекста – это воспользоваться декоратором функции @contextmanager, написав функцию как генератор.
🐍 Что происходит, когда запускаешь «Hello World» в Linux
🐍 Как Python использует сборку мусора для эффективного управления памятью
В Python мы часто думаем о переменной как о метке для значения. Однако, если говорить точнее, то переменная на самом деле указывает на объект, который хранит значение.
🐍 Как правильно дифференцировать дискретные функции
Под термином численное дифференцирование часто понимают три разные вещи (цитата по numdifftools) — символьное (символическое) дифференцирование, вычисление производной от функции, заданной аналитически, и вычисление производной от функции, заданной набором данных.
🐍 Я люблю питон, и вот почему он меня бесит
❤12👍5
Библиотека Feather
Feather — это библиотека для эффективного чтения и записи таблиц данных в двоичный формат. Она использует формат Apache Arrow для сериализации данных, что позволяет быстро читать и записывать данные без потери информации.
В этом примере мы использовали две основные функции библиотеки:
— feather.write_dataframe(): записывает таблицу данных в файл формата Feather.
— feather.read_dataframe(): читает таблицу данных из файла формата Feather.
Feather позволяет быстро и эффективно обмениваться данными между Python и R, а также обеспечивает быстрое чтение и запись таблиц данных на диск.
#код
Feather — это библиотека для эффективного чтения и записи таблиц данных в двоичный формат. Она использует формат Apache Arrow для сериализации данных, что позволяет быстро читать и записывать данные без потери информации.
В этом примере мы использовали две основные функции библиотеки:
— feather.write_dataframe(): записывает таблицу данных в файл формата Feather.
— feather.read_dataframe(): читает таблицу данных из файла формата Feather.
Feather позволяет быстро и эффективно обмениваться данными между Python и R, а также обеспечивает быстрое чтение и запись таблиц данных на диск.
#код
❤18🔥7👍2
Python, внешние функции и Steam
В этой статье показано, как вызывать сторонние функции C из Python. Это позволяет вам обращаться к разделяемым библиотекам аналогично тому, как работают расширения. В примерах используется SDK Steamworks, который игры используют для связи со Steam.
Читать статью
В этой статье показано, как вызывать сторонние функции C из Python. Это позволяет вам обращаться к разделяемым библиотекам аналогично тому, как работают расширения. В примерах используется SDK Steamworks, который игры используют для связи со Steam.
Читать статью
👍8🤔1