Библиотека питониста | Python, Django, Flask
40.7K subscribers
2.72K photos
74 videos
51 files
4.3K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🔥 Что такое __slots__ в Python?

__slots__ — это специальный атрибут класса, который:
Оптимизирует потребление памяти за счёт отказа от __dict__
Ускоряет доступ к атрибутам
Запрещает добавление новых атрибутов, не прописанных в __slots__

Пример без __slots__
class Point:
def __init__(self, x: float, y: float) -> None:
self.x = x
self.y = y

def __str__(self) -> str:
#

point = Point(1.2, 3.4)


🔹 Минус: каждый объект хранит атрибуты в __dict__, что расходует память

Пример с __slots__
class Point:
__slots__ = ('x', 'y')

def __init__(self, x: float, y: float) -> None:
self.x = x
self.y = y

def __str__(self) -> str:
#

point = Point(1.2, 3.4)


🔹 Плюсы:
1. Экономия памяти
2. Ускорение доступа к атрибутам

Когда __slots__ НЕ стоит использовать?
Если нужно динамически добавлять атрибуты
Если используется __dict__

Статья: https://clc.to/QjMXpg
Использовали __slots__ в проектах?

Библиотека питониста #буст
👍13😢51🔥1
😶 Алгоритмы или гугл?

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

А что важнее для junior-разработчика? Делитесь своим мнением и голосуйте! 👇

❤️ — Алгоритмы, без них никуда
🔥 — Гуглить тоже надо уметь
👍 — Главное — чтобы код работал

Библиотека питониста #междусобойчик
🔥76👍5324🙏1
🔥 Фишка Groovy: JavaScript-скорость в Python-средах

Каждый разработчик сталкивается с дилеммой: хочется простоты Python и производительности JavaScript на клиенте.

Groovy — транслятор Python в JavaScript, который решает эту задачу:

Пишите функции на привычном Python-синтаксисе.
Запускайте их с JavaScript-скоростью на клиенте.
Ясные сообщения об ошибках, если код не может быть транспилирован.

Транспиляция Python-функций в JS:
from groovy import transpile

def sum_range(n: int):
total = 0
for i in range(n):
total = total + i
return total

js_code = transpile(sum_range)
print(js_code)


Выходной JavaScript-код:
function sum_range(n) {
let total = 0;
for (let i of Array.from({length: n}, (_, i) => i)) {
total = (total + i);
}
return total;
}


Кто пользуется такими трансляторами? 🙌
Ссылка на проект:
https://clc.to/9d1s3w

Библиотека питониста #буст
7😁2👍1
🏃‍♀️ 40+ каналов, которые должен читать каждый разработчик

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

IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии

Библиотека программиста — новости из мира IT и технологий

Книги для программистов — самые годные книги по любым языкам и стекам

IT-мемы — мемы про жизу айтишника

Proglib Academy — обучение и курсы, чтобы стать топовым специалистом

Азбука айтишника — азы из мира разработки

Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ

Библиотека фронтендера — все о JS, React, Angular и не только

Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin

Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься

Библиотека тестировщика — самое интересное о том, как крашить код

🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go

#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#

🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE

🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel

🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask

☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java

📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science

🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++

Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🤩1
🚀 Мартовский релиз: Python, Pylance и Jupyter для VS Code

Вышло мощное обновление VS Code, которое сделает работу с Python еще удобнее.

Что внутри обновления:
• Улучшенная интеграция с Python shell.
• Новый параметр для автопоиска тестов по шаблону.
• Отображение значений переменных при наведении в Notebooks и Python-файлах.
• Автоматическая вставка кавычек при разбиении длинных строк.

Еще больше о релизе: https://clc.to/v0tvdg

Библиотека питониста #свежак
👍63🔥1
Типичный рабочий процесс в IT-команде.

• Джуниоры — тащат проект изо всех сил.
• Сеньор — наблюдает, готов вмешаться.
• Скрам-мастер — стратегически управляет... ложкой в йогурте.

Кто узнаёт свою команду?
👍 — один в один, по другому и быть не может.
❤️ — у нас ещё PM где-то в углу с Jira стоит.
😆 — ещё не хватало тимлида, который всё переделает.

Библиотека питониста #развлекалово
👍13😁96💯1
🎉 Поздравляем с 8 марта

Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблён в код. Без вас IT не было бы таким, каким мы его знаем. С праздником, коллеги 💐

Женщины оставили огромный след в истории IT. Если вам кажется, что программирование — это исключительно «мужская территория», взгляните, вот лишь несколько легендарных женщин:

🔹 Ада Лавлейс — автор первой компьютерной программы ещё в 19 веке.
🔹 Грейс Хоппер — создала первый компилятор и популяризировала термин «баг».
🔹 Барбара Лисков — её принцип Liskov Substitution является основой ООП, в том числе в Java.
🔹 Эдит Кларк — первая женщина-инженер, внесшая вклад в вычислительные методы в энергетике.
🔹 Маргарет Гамильтон — разработала софт для посадки «Аполлона-11» на Луну.

А это только малая часть. В статье собраны ещё больше вдохновляющих историй.

🔗 Подробнее в статье

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
14🎉4👍2❤‍🔥1🔥1
Самые догадливые, пишите ответ в комментах 👇

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

Библиотека питониста #междусобойчик
🤔42👍2
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»

Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!

🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
15👍5
🐍 Новости недели

▪️ Brushshe 1.2.0 — обновление растрового графического редактора на Python для Windows 10/11.

▪️ Мартовский релиз VS Code — обновления для Python, Pylance и Jupyter.

▪️ Критические патчи безопасности Django — исправления уязвимостей в версиях 5.1.7, 5.0.13 и 4.2.20.

▪️ My 2025 uv-based Python Project Layout — разбор оптимальной структуры FastAPI-проекта с uv.

▪️ Design of Everyday APIs — как создавать удобные и интуитивно понятные API в Python.

▪️ Flask-SQLAlchemy — введение в расширение для управления базами данных во Flask.

▪️ Pydoll — новая библиотека для автоматизации браузера Chromium без WebDriver.

▪️ Релиз Python-oracledb 3.0 — поддержка DataFrame, Oracle AQ и SPARSE векторов.

Что вам показалось самым интересным? Или, может, мы что-то упустили? Делитесь в комментариях!

Библиотека питониста #свежак
3👍2🤩1
Как соединить два списка в список кортежей?

Для создания списка кортежей можно воспользоваться функцией zip. Она позволяет объединять не только два, но и три или более списков.
9👍4🥱2
🎨 Kivy vs Flet — что выбрать для GUI в Python?

Наши подписчики обсуждали, какой инструмент лучше для создания интерфейсов на Python: Kivy или Flet. Давайте разберёмся!

🔹 Kivy — это мощный фреймворк для создания нативных кроссплатформенных приложений. Работает на Windows, macOS, Linux, Android, iOS и даже Raspberry Pi. Поддерживает OpenGL для ускоренной графики, но требует сложной настройки.

🔹 Flet — это фреймворк для быстрой разработки UI на Python с использованием Flutter. Интерфейсы выглядят современно, а приложения легко развертывать в вебе, на десктопе и мобильных устройствах.

Использовали ли вы Kivy или Flet? И как думаете, Python может быть хорош для фронтенда?

Библиотека питониста #междусобойчик
👍12🌚41🔥1
😱 Обманули с производительностью интерпретатора Python 3.14?

В прошлом месяце команда CPython представила новый интерпретатор с оптимизацией хвостовых вызовов (tail calls), который обещал улучшение производительности на 10-15%.

Однако, как выяснилось, это улучшение было связано с ошибкой в бенчмарках, вызванной регрессией в LLVM 19. При корректных настройках прирост производительности снизился до 1-5%.

Автор статьи проводил тщательные тесты и анализ, чтобы понять причины таких результатов. Несмотря на это, он всё еще считает новый интерпретатор хорошей разработкой, хотя и с меньшим улучшением производительности, чем ожидалось.

Библиотека питониста #свежак
😁95👍5🔥1
How to: как создать самоссылочную связь через внешний ключ?

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

👨‍💻 Решение: используйте самоссылочный внешний ключ.

Как это работает:
• Моделируем связь с «линейным менеджером» как внешний ключ, указывая на самого себя (используем self).
• Используем поле line_manager, чтобы задать связь «многие к одному» (снизу вверх).
• Обратную связь можно легко получить с помощью поля direct_reports, которое позволяет найти всех сотрудников, которых управляет данный сотрудник.

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

Библиотека питониста #буст
4👍1🔥1
📊💼 Ситуация на рынке труда в IT в 2025 году: результаты опроса айтишников

Помните мы проводили опрос про рабочие моменты? Пришло время делиться результатами!

В нашем исследовании приняли участие более 1000 IT-специалистов различных направлений. Работа или личная жизнь? Удалёнка или офис? Заменил ли всех ИИ?

➡️ Ответы в подробном отчёте

А какие изменения на IT-рынке замечаете вы? Делитесь в комментариях! 👇

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🤔1
📝 Структуры данных: ТОП-30 вопросов и ответов для собеседований в 2025 году

Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.

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

📄 Прочитайте статью и укрепите свои знания https://proglib.io/sh/1uYAygzIxr

Библиотека питониста
5👍3😁1
Команда дня: сравнение объектов с помощью __eq__

В Python, когда вы используете оператор == для сравнения объектов, по умолчанию проверяется, ссылаются ли объекты на один и тот же экземпляр в памяти. Однако, если вы хотите настроить, как должны сравниваться объекты вашего класса, вам нужно переопределить метод ‘__eq__’.

Поведение по умолчанию:

Без переопределения ‘__eq__’, Python сравнивает объекты на основе их ссылок в памяти. То есть, два объекта будут считаться равными только в том случае, если они являются одним и тем же объектом.

Пример:
class MyClass:
def __init__(self, value):
self.value = value

a, b = MyClass(1), MyClass(1)
print(a == b) # False


Здесь, несмотря на то, что у объектов a и b одинаковые значения атрибутов, они считаются неравными, так как это разные экземпляры класса.


С методом ‘__eq__’ (пользовательское сравнение):

Чтобы изменить поведение сравнения объектов, вы можете переопределить метод ‘__eq__’ в вашем классе. Этот метод будет определять, что именно считать равенством для объектов вашего класса.

Пример:
class MyClass:
def __init__(self, value):
self.value = value

def __eq__(self, other):
if isinstance(other, MyClass):
return self.value == other.value
return False

a, b = MyClass(1), MyClass(1)
print(a == b) # True


В этом примере мы определяем, что объекты считаются равными, если их атрибуты value одинаковы. Теперь вывод будет True, так как у a и b одинаковые значения.

Библиотека питониста #буст
👍16🔥21
Чек-лист: 5 приемов ускорения Python

👍 JIT-компиляция с Numba:
Numba — это JIT-компилятор, который переводит код Python в быстрый машинный код. Добавив декоратор @jit, вы можете ускорить вычисления в циклах и операциях с массивами.

Пример:
from numba import jit
import numpy as np
import time

@jit(nopython=True)
def sum_squares(arr):
total = 0
for i in range(arr.shape[0]):
total += arr[i] * arr[i]
return total

data = np.arange(1000000)
start = time.time()
result = sum_squares(data)
end = time.time()
print("Numba JIT:", result, "Time:", end - start)


Результат
: прирост производительности до 10-30 раз.

👍 Многозадачность:
Python ограничивает многозадачность из-за GIL, но для вычислительно сложных задач можно использовать многопроцессорность, чтобы обойти это ограничение.

Пример:
import multiprocessing as mp

def process_image(image):
return image ** 2

if __name__ == '__main__':
images = range(20)
with mp.Pool(mp.cpu_count()) as pool:
results = pool.map(process_image, images)
print(results)


👍 Cython и PyPy:
Cython компилирует Python в C, что ускоряет выполнение кода. PyPy — это JIT-компилятор, который улучшает производительность без изменения кода.

Пример: С использованием Cython можно ускорить код, написав его в файле .pyx, а с PyPy просто сменив интерпретатор.

👍 Правильные структуры данных:
Используйте более эффективные структуры данных, такие как массивы NumPy, вместо списков Python для числовых вычислений. Это ускоряет выполнение и экономит память.

Пример:
import numpy as np
data = np.arange(1000000)
result = data * 2


Векторизация операций с NumPy может быть в 50 раз быстрее.

👍 Инструменты профилирования:
Профилирование помогает понять, какие части кода нуждаются в оптимизации. Используйте cProfile и line_profiler для анализа производительности.

Пример:
import cProfile

def heavy_computation():
return sum([i * i for i in range(1000000)])

cProfile.run('heavy_computation()')


Это поможет найти узкие места и ускорить работу.

Библиотека питониста #буст
👍213🔥3
🔥 Делимся Python-репозиториями

Давайте обсудим самые интересные и полезные Python-репозитории!

✔️ Какие репозитории вы используете чаще всего?
✔️ Какие проекты вас впечатлили, но пока не получили широкой известности?
✔️ Какой Python-репозиторий можно поковырять для удовольствия?

Библиотека питониста #междусобойчик
5👍2🔥1