byteofpython | Unsorted

Telegram-канал byteofpython - 🐍 Укус питона 🐍

2619

🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @it_dashka 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython

Subscribe to a channel

🐍 Укус питона 🐍

DevOps - это методология, объединяющая разработку и операционное обслуживание программного обеспечения. Термин DevOps происходит от слов "development" (разработка) и "operations" (операции) и описывает культуру сотрудничества и инструменты, направленные на автоматизацию процессов разработки и управления инфраструктурой.

Одним из ключевых преимуществ DevOps является ускорение процесса разработки и поставки программного обеспечения. Благодаря автоматизации и интеграции этапов разработки, команды могут быстрее выпускать новые версии приложений на рынок, что позволяет компаниям быть более гибкими и отзывчивыми к изменениям требований клиентов.

Еще одно преимущество DevOps заключается в улучшении качества программного обеспечения. Автоматическое тестирование и непрерывная интеграция позволяют выявлять и устранять ошибки на ранних стадиях разработки, предотвращая возникновение серьезных проблем в продукте и повышая его надежность.

Кроме того, DevOps способствует повышению эффективности работы команды. Благодаря упрощению и автоматизации процессов, разработчики и операционные специалисты могут сосредоточиться на решении более сложных задач, что позволяет снизить нагрузку на сотрудников и улучшить их работу.

Роль DevOps инженера заключается в реализации принципов DevOps в компании. Он обладает навыками разработки, автоматизации и управления инфраструктурой, включая создание и поддержку инструментов для автоматизации разработки, настройку и мониторинг инфраструктуры, а также сотрудничество с различными командами внутри компании.

Читать полностью…

🐍 Укус питона 🐍

❓Хотите узнать, какой алгоритм сортировки быстрее и эффективнее? Присоединяйтесь к нашему открытому уроку!

🔥 Тема: Визуальное сравнение 4-5 алгоритмов сортировок.
📅 Дата: 15 июля в 20:00 мск.

На занятии мы подробно рассмотрим два популярных алгоритма сортировки: Выбором и Пирамидальной. Разберём их по различным критериям, включая сложность, количество обменов, стабильность и адаптивность.

Мы напишем и сравним алгоритмы по их быстродействию. Этот урок идеально подходит для студентов, разработчиков и всех, кто хочет углубить свои знания в области алгоритмов сортировки.

🔥 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.

🔴 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://otus.pw/v8gq/?erid=LjN8KP9gn

Читать полностью…

🐍 Укус питона 🐍

🔮 В мире Python существует функция str.join(), которая действительно похожа на волшебную палочку, объединяющую слова, фразы или элементы списка в одну большую строку.

Представьте себе, что вы устраиваете вечеринку и хотите собрать всех друзей в круг. str.join() — это как магия, которая собирает всех вместе!

🔮 Давайте посмотрим, как это работает на практике:

# Допустим, у нас есть список слов
words = ["Привет", "мир", "я", "Python"]

# И мы хотим объединить их в предложение
sentence = ' '.join(words)
print(sentence)


🔝 В результате этого кода мы получим строку: "Привет мир я Python".

🔮 Как это работает?

join() берет список (в нашем случае words) и использует пробел ' ' в качестве "клея", чтобы соединить все слова в одну строку. Таким образом, каждый элемент списка становится частью большой строки, разделенной пробелами или любым другим символом, который мы укажем перед join().

🔮 Еще один пример:

users = ["RimMirK", "Anuke", "compuser"]

result = ', '.join(users)
print(result) # "RimMirK, Anuke, compuser"


🔝 Здесь мы соединили пользователей через запятую.

Таким образом, функция str.join() предоставляет удобный способ объединения элементов списка в одну строку, используя указанный разделитель.

Читать полностью…

🐍 Укус питона 🐍

Какой из этих двух классов вызывается первым ?
Спросят с вероятностью 3%


При создании объекта класса в Python, порядок вызова конструкторов определяется методом разрешения порядка (MRO) и зависит от иерархии наследования.

Для примера с двумя классами, где один наследуется от другого:

class A:
def init(self):
print("Constructor of A")

class B(A):
def init(self):
print("Constructor of B")
super().__init()

# Создание экземпляра класса B
b = B()


Порядок вызова будет следующим:
1️⃣ При создании объекта класса B сначала вызывается его initinit.
2️⃣ Затем внутри конструктора B вызывается super().__init(), что приводит к вызову конструктора базового класса A.

Таким образом, сначала вызывается конструктор B, а затем конструктор A.

Метод разрешения порядка (MRO) определяет порядок обработки классов при наследовании. Для получения MRO для класса можно использовать атрибут mro или функцию mro().

Например:
print(B.mro())


Результатом будет кортеж, указывающий порядок разрешения методов для класса B. При множественном наследовании MRO становится еще более важным.

Важно помнить, что при создании объекта класса сначала вызывается конструктор самого класса, затем конструкторы его базовых классов в порядке, определенном MRO. В случае множественного наследования порядок вызова конструкторов определяется методом разрешения порядка (MRO).

Читать полностью…

🐍 Укус питона 🐍

ООП - это сокращение от "объектно-ориентированное программирование". Это методология программирования, которая использует объекты и их взаимодействие для решения задач. ООП стал широко распространенным подходом в программировании, и понимание его основных концепций может быть полезным для разработчиков.

➡️ Преимущества ООП:

ООП предлагает ряд преимуществ, которые делают его популярным подходом в программировании.

➡️ Во-первых, ООП способствует повышению переиспользуемости кода. Разработчики могут создавать модули и классы, которые можно использовать в различных проектах.

➡️ Во-вторых, ООП способствует упрощению поддержки и изменения программного кода. Если необходимо внести изменения в программу, то, в большинстве случаев, достаточно внести изменения только в одном месте - в классе или его методе.

➡️ В-третьих, ООП позволяет создавать более надежные программы. Благодаря инкапсуляции и строгой организации кода, ошибки и проблемы могут быть обнаружены и исправлены более эффективно.

Читать полностью…

🐍 Укус питона 🐍

✈️WebApp (или веб-приложение) в Telegram — это приложение, которое запускается прямо внутри мессенджера. Это делает его доступным в любое время и в любом месте, где у вас есть доступ к Telegram.

🔎Преимущества WebApp в Telegram:

➡️Удобство и доступность

WebApp работает прямо в Telegram, поэтому вам не нужно устанавливать дополнительные приложения.

➡️Мгновенное обновление

Веб-приложения всегда обновлены до последней версии. Вам не нужно беспокоиться об установке обновлений — разработчики делают это за вас!

➡️Кроссплатформенность

WebApp работает одинаково хорошо на всех устройствах: будь то iOS, Android или десктопная версия Telegram. Это значит, что вы получите единый опыт использования независимо от вашего устройства.

➡️Богатый функционал

WebApp предоставляет разработчикам больше возможностей для создания функциональных и интерактивных приложений. Это могут быть игры, сервисы для бронирования, образовательные платформы и многое другое!

Читать полностью…

🐍 Укус питона 🐍

У списка (и только у него) есть специальные методы .sort() и .reverse(), которые выполняют те же действия, что и функции sorted() и reversed(), но с некоторыми отличиями:

✔️ Изменяют сам исходный список, а не создают новый.

✔️ Возвращают None, а не новый список.

✔️ Поддерживают те же дополнительные аргументы.

Читать полностью…

🐍 Укус питона 🐍

🐍 Библиотека PIL (Python Imaging Library) является одной из наиболее популярных библиотек для работы с изображениями.

👉 Одной из основных возможностей библиотеки PIL является способность создавать и редактировать изображения. С ее помощью можно создавать новые изображения с определенными размерами и цветовыми схемами, а также редактировать существующие изображения.

⏺ Например, можно добавлять текст, рисовать графические примитивы, накладывать различные эффекты и многое другое.

👉 Библиотека PIL также предоставляет возможность обработки изображений в пакетном режиме. Это означает, что можно применять определенные операции к нескольким изображениям одновременно.

⏺ Например, можно изменить размер и применить фильтр к множеству изображений, что позволяет сэкономить время и упростить процесс обработки большого количества изображений.

Читать полностью…

🐍 Укус питона 🐍

🐍 PyVista: простота 3D-визуализации с Python

PyVista – это библиотека, которая делает работу с 3D-объектами простой и интуитивной.

👉 Основные преимущества PyVista:

- Простой доступ к VTK: PyVista предоставляет удобный интерфейс для взаимодействия с VTK – мощным инструментом визуализации, не требуя глубоких знаний его сложного API.

- Поддержка различных типов данных: Работайте с 3D-данными в разных форматах, включая сетки, точки и области.

- Инструменты для анализа: PyVista позволяет фильтровать и обрабатывать 3D-данные для получения ценной информации.

👉Что можно делать с PyVista:

- Визуализировать сложные 3D-модели: Создайте реалистичные изображения для презентаций
или публикаций.

- Анализировать 3D-данные: Исследуйте и обрабатывайте данные из разных областей.

- Интегрировать 3D-визуализацию в другие проекты: Используйте PyVista как помощник с 3д проектами.

Читать полностью…

🐍 Укус питона 🐍

🐍 Pygame - одна из самых популярных библиотек для разработки игр на языке программирования Python.

👉 Она предлагает широкий спектр инструментов и функций, которые помогают создавать 2D игры. Pygame обладает простым и понятным интерфейсом, что делает ее отличным выбором для новичков в разработке игр. Кроме того, она поддерживает работу с звуком, анимацией и управлением ввода.

🔼 Arcade - еще одна библиотека для создания игр на Python, с уклоном на 2D игры. У нее простой и интуитивно понятный интерфейс, а также широкий набор инструментов, включая графику, анимацию, физику и звук.

🔼 Panda3D - это библиотека, которая предоставляет возможности для создания как 2D, так и 3D игр на Python. Она обладает мощным набором инструментов и функций, позволяющих разработчикам создавать высококачественные игры.

Читать полностью…

🐍 Укус питона 🐍

🖥 Что представляет собой some-variable ?

👉 В Python двойное подчеркивание перед и после имени переменной называется "dunder" (Double underscore) и применяется для специальных методов и атрибутов, которые могут быть вызваны автоматически.

⬆️ Например, init - это специальный метод, который вызывается при создании экземпляра класса. Другие примеры включают str, len, call, iter и многие другие.

👉 Также используются "dunder" атрибуты, такие как name, module, doc, file, dict, class, all и другие, которые предоставляют информацию о модуле, классе, функции или другом объекте.

✅ Значение, которое присваивается такой переменной, зависит от контекста использования.

⬆️ Например, name - это специальный атрибут, который хранит имя текущего модуля.

❗️Рекомендуется использовать двойное подчеркивание только для специальных методов и атрибутов, имеющих специальное значение в языке Python, и избегать использования таких имен для пользовательских переменных, чтобы избежать конфликтов и непредсказуемого поведения.

Читать полностью…

🐍 Укус питона 🐍

❗️Наконец-то! в телеграме появился по настоящему крутой канал по Python!

Каждый день в канале выкладывают:
-Полезные советы и решения для разработки
-Обучающие материалы и уроки для всех уровней
-Свежие новости и обновления
-А так же сливы с лучших платных курсов

🔥 Не упустите возможность стать настоящим профессионалом! Быстрей залетай в Pythoner

Читать полностью…

🐍 Укус питона 🐍

📌 Запуск скрипта в интерактивном режиме с параметром -i

👉 Иногда возникает необходимость в ручном тестировании определенных функций или классов в скрипте, и здесь программисту приходит на помощь интерактивный режим работы интерпретатора Python.

👉 После выполнения скрипта, интерпретатор Python переходит в режим командной строки.

👉 В этом режиме, например, можно вызвать любую функцию, определенную в скрипте, с различными аргументами.

Читать полностью…

🐍 Укус питона 🐍

🐍 Популярные языки программирования и разметки, которые часто используются в связке с Python.

➡️JavaScript

JavaScript используется для фронтенда в веб-разработке. В сочетании с Python (Django, Flask), JavaScript позволяет создавать динамичные и интерактивные веб-приложения. Например, комбинации Django + React или Flask + Vue.js.

➡️HTML & CSS

Эти языки необходимы при разработке веб-приложений. HTML отвечает за структуру страниц, а CSS за их стиль. Python часто используется для генерации HTML-кода и работы с CSS-стилями.

➡️SQL

SQL - это язык запросов к базам данных. Python имеет отличные библиотеки для работы с SQL, такие как SQLAlchemy и SQLite. Важно уметь взаимодействовать с базами данных при создании серьезных приложений.

➡️Markdown

Markdown - легкий язык разметки для написания документации. Он часто используется для написания блогов, README файлов на GitHub и других документов. Отлично подходит для документирования кода на Python.

Читать полностью…

🐍 Укус питона 🐍

Модель в Django - это класс Python, который определяет структуру таблицы в базе данных.

Каждый атрибут класса соответствует столбцу в таблице, а его тип определяет тип данных, хранимых в этом столбце.

Для создания модели в Django необходимо определить новый класс Python в файле models.py вашего приложения.

from django.db import models

class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)

В данном примере мы создали модель "Article" с тремя полями: "title", "content" и "pub_date". Поле "title" является CharField с ограничением длины до 100 символов. Поле "content" - это TextField, предназначенный для хранения больших текстов. Поле "pub_date" - это DateTimeField, который автоматически заполняется текущей датой и временем при создании новой записи.

Читать полностью…

🐍 Укус питона 🐍

🐍 Как работает хэш-таблица?

⬆️ Хэш-таблица в Python реализована в виде словаря (dict). Процесс работы хэш-таблицы следующий:

➡️ Хэширование ключей: При добавлении пары ключ-значение в словарь, Python вычисляет хэш-код ключа с помощью функции hash(). Хэш-код представляет собой уникальное целое число, которое является "отпечатком" ключа.

➡️ Разрешение коллизий: Если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий. Один из распространенных методов - метод цепочек, где для каждой "ячейки" хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.

➡️Поиск значения: При поиске значения по ключу, Python вычисляет хэш-код ключа и определяет соответствующую "ячейку" в хэш-таблице. Затем происходит поиск значения внутри этой "ячейки" (или цепочки).

Читать полностью…

🐍 Укус питона 🐍

GeoPy - это популярная библиотека для языка программирования Python, предназначенная для выполнения различных геокодировочных операций.

➡️ Она обеспечивает простой способ преобразования адресов в географические координаты (широту и долготу) и обратно.

🔼 Одной из основных функций библиотеки GeoPy является геокодирование, которое позволяет преобразовывать текстовые адреса в географические координаты. Это может быть полезно для создания карт, отслеживания местоположения или анализа данных, связанных с конкретными локациями.

🔼 Еще одной полезной функцией GeoPy является возможность расчета расстояний между двумя точками на карте. Это может быть полезно для множества приложений, включая логистику, планирование маршрутов и анализ местоположения.

Читать полностью…

🐍 Укус питона 🐍

Загрузка изображения

Для начала работы с изображением необходимо его загрузить с помощью функции open() из библиотеки PIL и сохранить в переменную. Например, следующий код загрузит изображение с именем "image.jpg":

from PIL import Image

image = Image.open("image.jpg")



После выполнения этого кода изображение будет загружено и готово к дальнейшей обработке.

➡️Изменение размера изображения

Библиотека PIL предоставляет функцию resize(), которая позволяет изменить размер изображения. Например, следующий код изменит размер изображения до 500 пикселей в ширину и 300 пикселей в высоту:

resized_image = image.resize((500, 300))


Вы можете указать любые значения для ширины и высоты в пикселях, чтобы получить нужный размер изображения.

➡️Сохранение изображения

После обработки изображения его можно сохранить в файл с помощью функции save().

resized_image.save("resized_image.jpg")


Также можно указать другой формат файла.

Читать полностью…

🐍 Укус питона 🐍

Объекты - это экземпляры классов, а классы служат шаблонами для создания объектов. У каждого объекта есть свои собственные атрибуты (переменные, данные) и методы (функции, действия), которые определяют его поведение и взаимодействие с другими объектами.

Например, если у нас есть класс "Автомобиль", мы можем создать несколько объектов этого класса, таких как "Машина1" и "Машина2". Каждый объект будет иметь свои уникальные атрибуты, такие как "марка", "модель", и методы, например "завести двигатель" или "передвинуться вперед".

➡️ Преимущества использования объектов в Python

Во-первых, объектно-ориентированное программирование упрощает структурирование кода и делает его более логичным и понятным. Каждый объект отвечает только за свои данные и методы.

Во-вторых, объекты позволяют создавать сложные структуры данных и абстракции. Мы можем создавать классы, представляющие реальные или воображаемые объекты, и определять их взаимодействие друг с другом.

Читать полностью…

🐍 Укус питона 🐍

🚀 Почему Python — лучший язык для создания Telegram-ботов?

Только начинаете свой путь в разработке? Ждём вас на открытом практическом уроке от OTUS, где мы:
— установим и настроим необходимые инструменты для создания Telegram-ботов;
— рассмотрим формат работы с библиотекой Python-telegram-bot;
— создадим простого бота;
— расширим его функциональность с помощью дополнительных возможностей;
— рассмотрим примеры работы готовых ботов;
— выясним, почему именно Python идеален для создания Telegram-ботов. 

Встречаемся 10 июля в 20:00 мск в преддверии старта курса «Специализация Python Developer». Все участники вебинара получат специальную цену на обучение.

🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок и создать классный проект для своего портфолио: https://otus.pw/wh80/?erid=LjN8KLEyM

Читать полностью…

🐍 Укус питона 🐍

Что такое diamondproblem ?
Спросят с вероятностью 3%

👉 Проблема ромбовидного наследования (Diamond Problem) возникает в объектно-ориентированном программировании при использовании множественного наследования. Она возникает из-за неоднозначности, когда класс наследует от нескольких классов, имеющих общего предка.

Рассмотрим пример:

class A:
def method(self):
print("Method in A")

class B(A):
def method(self):
print("Method in B")

class C(A):
def method(self):
print("Method in C")

class D(B, C):
pass

d = D()
d.method()


В этом примере:

✅Класс A является базовым классом.
✅Классы B и C наследуют от класса A и переопределяют метод method.
✅Класс D наследует от классов B и C.

🔼 Когда мы вызываем метод method через экземпляр класса D (d.method()), возникает вопрос: какой именно метод должен быть вызван - из класса B или из класса C? Это и есть проблема ромбовидного наследования.

Решение проблемы ромбовидного наследования

Использует метод разрешения порядка (MRO - Method Resolution Order) для решения этой проблемы. MRO определяет порядок, в котором методы должны вызываться в случае множественного наследования. Для просмотра MRO можно использовать атрибут mro или функцию mro().
print(D.mro)


Результат будет следующим:
(<class 'main.D'>, <class 'main.B'>, <class 'main.C'>, <class 'main.A'>, <class 'object'>)


Согласно этому порядку, метод method будет взят из класса B, так как он идёт первым в MRO. Поэтому при вызове d.method(), выведется:
Method in B

Если классы B и C используют super(), можно правильно вызвать методы всех классов-предков:
class A:
def method(self):
print("Method in A")

class B(A):
def method(self):
print("Method in B")
super().method()

class C(A):
def method(self):
print("Method in C")
super().method()

class D(B, C):
def method(self):
print("Method in D")
super().method()

d = D()
d.method()


Результат выполнения будет:
Method in D
Method in B
Method in C
Method in A


В этом случае методы всех классов вызываются в порядке, определённом MRO.

🔼Проблема ромбовидного наследования возникает при множественном наследовании и приводит к неоднозначности, какой метод вызывать. Решает эту проблему с помощью MRO (Method Resolution Order), определяющего порядок вызова методов.

Читать полностью…

🐍 Укус питона 🐍

Предположим, что требуется отсортировать данные сначала по столбцу А в порядке возрастания, затем по столбцу B в порядке убывания, а затем по столбцу C в порядке возрастания.

👉 Если данные в столбце B представлены числами, то можно использовать функцию в key, чтобы изменить знак элементов B и получить необходимый результат.

❗️ Однако, если все данные в текстовом формате, то можно воспользоваться устойчивой сортировкой sort в Python (начиная с версии 2.2), которая сохраняет порядок "одинаковых" элементов.

✔️ Для этого можно просто выполнить три сортировки по разным ключам.

Читать полностью…

🐍 Укус питона 🐍

🐍 Как выражена инкапсуляция в python ?
Спросят с вероятностью 3%

Инкапсуляция в Python выражается через механизмы, которые позволяют скрывать внутренние детали реализации класса и предоставлять доступ к данным и методам через определённый интерфейс. Важные аспекты инкапсуляции включают в себя соглашения об именовании и специальные методы.

Соглашения об именовании

Приватные атрибуты и методы:

- В Python соглашение об именовании позволяет сделать атрибуты и методы приватными, что предотвращает их случайное использование вне класса.

- Атрибуты и методы, начинающиеся с одного подчёркивания (_), считаются защищёнными и не должны использоваться вне класса или подклассов.

- Атрибуты и методы, начинающиеся с двойного подчёркивания (__), подвергаются манглингу имён (name mangling), что делает их труднодоступными извне класса.

class MyClass:
def init(self, value):
self._protected_value = value # Защищённый атрибут
self.__private_value = value # Приватный атрибут

def _protected_method(self):
print("This is a protected method.")

def __private_method(self):
print("This is a private method.")


Примеры использования

Защищённые атрибуты и методы:

- Они не предназначены для использования вне класса, но могут быть использованы в подклассах.

- Их использование вне класса является плохой практикой, но технически возможно.
class SubClass(MyClass):
def access_protected(self):
print(self._protected_value)
self._protected_method()

instance = SubClass(10)
instance.access_protected()
# Выведет:
# 10
# This is a protected method.


Приватные атрибуты и методы:

- Они подвергаются манглингу имён, что делает их труднодоступными извне класса.

- Внешний доступ возможен, но с использованием специального синтаксиса, что считается плохой практикой.
class AnotherClass:
def init(self, value):
self.__private_value = value

def __private_method(self):
print("This is a private method.")

def access_private(self):
print(self.__private_value)
self.__private_method()

instance = AnotherClass(20)
instance.access_private()
# Выведет:
# 20
# This is a private method.

# Попытка доступа к приватному атрибуту извне
# print(instance.__private_value) # AttributeError

# Доступ с использованием манглинга имён (не рекомендуется)
print(instance._AnotherClass__private_value) # Выведет: 20


Свойства (Properties)


Предоставляют интерфейс для управления доступом к атрибутам и позволяют инкапсулировать логику доступа и изменения данных.
class MyClassWithProperty:
def init(self, value):
self._value = value

@property
def value(self):
return self._value

@value.setter
def value(self, new_value):
if new_value > 0:
self._value = new_value
else:
raise ValueError("Value must be positive")

instance = MyClassWithProperty(10)
print(instance.value) # Выведет: 10
instance.value = 20
print(instance.value) # Выведет: 20
# instance.value = -10 # ValueError: Value must be positive


Инкапсуляция достигается с помощью соглашений об именовании (одинарное подчёркивание для защищённых и двойное подчёркивание для приватных атрибутов и методов) и использования свойств для управления доступом к атрибутам. Это позволяет скрывать внутренние детали реализации и предоставлять контролируемый интерфейс для взаимодействия с объектами.

Читать полностью…

🐍 Укус питона 🐍

Привет!

Мы — Московская Школа Программистов, и нам нужны преподаватели Python и других языков программирования. У нас гибкий график, полная методическая поддержка и множество перспектив для развития.

Наш подход основывается на долгосрочном обучении: наши ученики учатся от 4 лет и больше.

У нас есть отделения в Москве, Московской области и Санкт-Петербурге. Мы работаем по выходным и вечерам будних дней.

Подробную информацию и форму для записи можно найти на нашем сайте.

Читать полностью…

🐍 Укус питона 🐍

Библиотека aiohttp основана на пакете asyncio, который вводит понятие корутин и сопрограмм в Python.

👉 Она предоставляет простой и эффективный способ создания асинхронных HTTP-клиентов и серверов. С помощью aiohttp вы можете отправлять асинхронные HTTP-запросы, обрабатывать ответы и работать себ-сокетами.

🔼 Одним из ключевых преимуществ библиотеки aiohttp является ее высокая производительность. Благодаря асинхронной архитектуре, aiohttp позвет обрабатывать большое количество одновременных запросов без блокировки потоков выполнения.

Использование aiohttpsocks:

👉 Aiohttp-socks - это дополнение к aio, библиотеке для асинхронной работы с протоком HTTP в Python. Она позволяет делать асинхонные HTTP-запросы через SOCKS-прокси, что может быть полезно, например, при парсинге веб-страниц или при работе с API веб-сервисов.

Читать полностью…

🐍 Укус питона 🐍

📣 Семь лучших библиотек визуализации данных на Python на 2024 год

👉 Python предлагает широкий спектр библиотек для удовлетворения разнообразных потребностей в области визуализации данных, будь то для научных исследований, бизнес-аналитики или создания интерактивных веб-приложений.

🔼В данной статье мы рассмотрим семь ведущих библиотек Python, которые формируют будущее визуализации данных.

Читать полностью…

🐍 Укус питона 🐍

🐍 Абсолютное значение числа в Python

⬆️ При работе с данными часто возникает необходимость быстро определить абсолютное значение набора чисел. В Python для этой задачи предусмотрена простая встроенная функция – abs().

👉 Эта функция позволяет разработчикам получить числовое значение без учета его знака, фактически преобразуя число в положительное.

Читать полностью…

🐍 Укус питона 🐍

Что такое Meta в классах Django?

Метаклассы - это классы, которые создают другие классы. В Django метаклассы используются для конструирования классов. Когда Django создает наш класс модели, он делает это с помощью своего метакласса. Внутренний класс с именем Meta позволяет нам задавать параметры для этого конструктора.

from django.db import models

class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)

class Meta:
db_table = 'product_table'
ordering = ['-created_at']

В этом примере атрибут db_table в классе Meta указывает Django использовать таблицу с именем 'product_table' для хранения данных модели Product, а атрибут ordering указывает порядок сортировки результатов запроса по полю 'created_at'.

Читать полностью…

🐍 Укус питона 🐍

Инициализация пакетов в Python является важным аспектом организации кода.

Файл init.py в папке считается пакетом, и он выполняет роль инициализации этого пакета. Код в файле init.py будет выполнен при импорте пакета, что позволяет выполнить предварительную настройку или импортировать дополнительные модули, необходимые для работы пакета.

С помощью файла init.py можно создать логические блоки функциональности внутри пакета и обеспечить последовательность инициализации. Это помогает избежать ошибок при использовании пакета и улучшает организацию кода.

Благодаря файлу init.py вы можете импортировать модули из пакета с использованием точечной нотации, например: import folder.module.

Таким образом, использование файлов init.py для инициализации пакетов является хорошей практикой в Python.

Читать полностью…

🐍 Укус питона 🐍

Для чего нужны миксины ?
Спросят с вероятностью 3%

Миксины (или миксины) представляют собой классы, которые предназначены для предоставления методов другим классам через множественное наследование. Они используются для "смешивания" функциональности в другие классы без использования стандартного наследования. Это позволяет повторно использовать код, улучшать модульность и избегать дублирования.

Пример:
class LogMixin:
def log(self, message):
print(f"[LOG]: {message}")

class SaveMixin:
def save(self):
print("Data saved")

class MyClass(LogMixin, SaveMixin):
def do_something(self):
self.log("Doing something")
self.save()

# Использование
obj = MyClass()
obj.do_something()


В этом примере LogMixin и SaveMixin предоставляют дополнительные методы log и save, которые могут быть использованы в MyClass. Это позволяет MyClass использовать функциональность логирования и сохранения данных, не повторяя этот код.

Миксины нужны для добавления функциональности к классам через множественное наследование, что позволяет повторно использовать код и избегать дублирования. Они также способствуют модульности и изоляции функциональности, делая код более легким в управлении.

Читать полностью…
Subscribe to a channel