Метод чейнинг (method chaining) — техника вызова нескольких методов на одном объекте в одной строке, где каждый метод возвращает
self
, позволяя обходиться без промежуточных переменных.🔹 Преимущества:
• Меньше кода — избавляет от промежуточных переменных.
• Читаемость — код выглядит как последовательность логичных операций.
• Элегантный дизайн — делает API удобным для использования.
🔹 Недостатки:
• Трудность отладки — если что-то сломается, сложно найти источник ошибки.
• Длинные цепочки — могут ухудшать читаемость, если используются чрезмерно.
• Жёсткая связь методов — изменения в классе могут затронуть всю цепочку.
🎯 Когда использовать Method Chaining:
• Трансформации данных — очистка текста, математические вычисления, работа с датафреймами.
• Формировании Fluent API — используется в pandas, jQuery и других библиотеках для удобного взаимодействия с объектами.
🏆 Лучшие практики использования:
• Возвращайте self правильно — убедитесь, что каждый метод возвращает объект, с которым ведется работа, а не новый объект.
• Читаемые цепочки — избегайте слишком длинных цепочек, которые трудно отлаживать.
• Обработка ошибок — добавьте обработку исключений, чтобы не прерывать выполнение кода в случае ошибки.
• Логичность — методы должны выполняться в последовательности, логичной для объекта.
🔹 Пример на Pandas:
import pandas as pd
df = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
result = df.rename(columns={'Name': 'Full Name'}).sort_values(by='Age').reset_index(drop=True)
print(result)
🔹Пример на Flask:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def index():
return jsonify(message="Hello, World!").status_code(200)
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7😁1🥱1
🗣️ Истории подписчиков: как я получил первую работу
Каждому из нас когда-то приходилось начинать с нуля, и путь к первой работе разработчиком — это целый сериал эмоций: от сомнений до побед. Вспоминаем, как мы справлялись с трудностями и как наконец нашли свою первую работу.
😅 Вот моя история:
А как вы получили свою первую работу? Делитесь в комментариях!😁
Библиотека питониста #междусобойчик
Каждому из нас когда-то приходилось начинать с нуля, и путь к первой работе разработчиком — это целый сериал эмоций: от сомнений до побед. Вспоминаем, как мы справлялись с трудностями и как наконец нашли свою первую работу.
Когда я только начал осваивать Python, казалось, что программирование — это просто. Прочитал пару статей, написал скрипты, и вот ты уже почти профессионал! Но на собеседовании меня ждали реальные вызовы: задачи на логику, библиотеки, многозадачность... Я, конечно, не знал ответа на половину вопросов.
Но я не сдался! На интервью я признался, что не знаю всех ответов, но готов учиться. Мне дали тестовое задание. Потратил много времени, но в конце понял, что допустил элементарную ошибку с декоратором! Переписал, отправил, и через пару дней получил предложение о работе.
Этот опыт научил меня важному: не бойся признавать свои слабости, если ты готов учиться и расти.
А как вы получили свою первую работу? Делитесь в комментариях!
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4😁3
🔥 PyGWalker: ускорьте анализ и визуализацию данных
PyGWalker — инструмент, который превращает pandas DataFrame в интерактивный интерфейс для визуального исследования данных.
🔹 Что он умеет?
• Интеграция с Jupyter Notebook.
• Визуализация данных с помощью drag-and-drop.
• Очистка и аннотация данных.
• Поддержка запросов на естественном языке.
💡 Если вы аналитик данных или исследователь, PyGWalker поможет вам быстрее анализировать данные и создавать наглядные отчёты без сложного кода.
🔗 Ссылка на репозиторий: https://clc.to/QjWKzg
Библиотека питониста #буст
PyGWalker — инструмент, который превращает pandas DataFrame в интерактивный интерфейс для визуального исследования данных.
🔹 Что он умеет?
• Интеграция с Jupyter Notebook.
• Визуализация данных с помощью drag-and-drop.
• Очистка и аннотация данных.
• Поддержка запросов на естественном языке.
💡 Если вы аналитик данных или исследователь, PyGWalker поможет вам быстрее анализировать данные и создавать наглядные отчёты без сложного кода.
🔗 Ссылка на репозиторий: https://clc.to/QjWKzg
Библиотека питониста #буст
👍12❤🔥2🔥1
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🧩💊 Алгоритмическая самоуспокоенность: как мы разучились думать своей головой
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
🔗 Подробнее в статье
🐸 Библиотека джависта
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
6 слов, которые знакомы каждому Python-разработчику
Отложим кодинг и разомнём мозги с нашим небольшим кроссвордом. 💡
По горизонтали:
1. Функция, которая позволяет модифицировать поведение другой функции.
5. Область видимости переменных в коде.
По вертикали:
2. Расширение программы, которое обычно содержит библиотеки и файлы.
3. Способ выполнения асинхронных задач в Python.
4. Фреймворк для создания веб-приложений.
6. Пакетный менеджер для установки Python-библиотек.
Делитесь своими ответами в комментариях 👇
Прячем ответы под спойлер, даём шанс угадать всем.
Библиотека питониста #междусобойчик
Отложим кодинг и разомнём мозги с нашим небольшим кроссвордом. 💡
По горизонтали:
1. Функция, которая позволяет модифицировать поведение другой функции.
5. Область видимости переменных в коде.
По вертикали:
2. Расширение программы, которое обычно содержит библиотеки и файлы.
3. Способ выполнения асинхронных задач в Python.
4. Фреймворк для создания веб-приложений.
6. Пакетный менеджер для установки Python-библиотек.
Делитесь своими ответами в комментариях 👇
Прячем ответы под спойлер, даём шанс угадать всем.
Библиотека питониста #междусобойчик
👍7❤4🥱1
🐍 Python новости
🚀 Релизы и инструменты:
— Django 5.2 RC1 — последний шанс протестировать новые функции перед релизом.
— Unvibe — новый Python-инструмент для генерации кода из unit-тестов.
— Marimo — переосмысление ноутбуков как переиспользуемых Python-программ.
🔬 Глубже в Python:
— Operationalizing Python — почему Python становится трудно поддерживаемым.
— Weakref в Python — руководство по слабым ссылкам.
📚 Обучение и лучшие практики:
— 100 самых популярных Python-докладов 2024 года.
— 5 листингов для лучшего понимания Python.
— Генерация синтетических данных в Python.
🔧 DevOps и безопасность:
— Иерархия контроля в DevOps — как защитить прод от ошибок разработчиков.
Библиотека питониста #свежак
🚀 Релизы и инструменты:
— Django 5.2 RC1 — последний шанс протестировать новые функции перед релизом.
— Unvibe — новый Python-инструмент для генерации кода из unit-тестов.
— Marimo — переосмысление ноутбуков как переиспользуемых Python-программ.
🔬 Глубже в Python:
— Operationalizing Python — почему Python становится трудно поддерживаемым.
— Weakref в Python — руководство по слабым ссылкам.
📚 Обучение и лучшие практики:
— 100 самых популярных Python-докладов 2024 года.
— 5 листингов для лучшего понимания Python.
— Генерация синтетических данных в Python.
🔧 DevOps и безопасность:
— Иерархия контроля в DevOps — как защитить прод от ошибок разработчиков.
Библиотека питониста #свежак
👍4❤3🔥1
Forwarded from Библиотека собеса по Python | вопросы с собеседований
🤔 Почему не стоит использовать изменяемые объекты как параметры по-умолчанию?
В Python не рекомендуется использовать изменяемые объекты в качестве значений параметров по умолчанию по следующим причинам:
— Значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
— Если использовать изменяемый объект (список, словарь), то изменения в нем будут сохраняться между вызовами функции. Это может привести к неочевидному поведению и трудноуловимым ошибкам при многократном вызове функции.
В качестве альтернативы можно задавать значение по умолчанию как None, а в теле функции создавать новый изменяемый объект, если значение не передано.
Такой подход позволяет избежать «эффекта переноса» состояния между вызовами и делает код более понятным и предсказуемым.
Библиотека собеса по Python
— Значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
— Если использовать изменяемый объект (список, словарь), то изменения в нем будут сохраняться между вызовами функции. Это может привести к неочевидному поведению и трудноуловимым ошибкам при многократном вызове функции.
В качестве альтернативы можно задавать значение по умолчанию как None, а в теле функции создавать новый изменяемый объект, если значение не передано.
Такой подход позволяет избежать «эффекта переноса» состояния между вызовами и делает код более понятным и предсказуемым.
Библиотека собеса по Python
👍14❤8❤🔥2👏1
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3👍2❤1🌚1
🏗 Управление памятью в Python: как это работает
Python сам выделяет и очищает память, чтобы вы не думали о байтах и указателях. Но иногда автоматике стоит помочь.
1. Python управляет памятью автоматически
Когда вы пишете
▪️ Тип данных (int, list, dict)
▪️ Счетчик ссылок (кто использует объект)
▪️ Значение (сами данные)
Такой подход удобен: нет «висячих указателей», не нужно вручную вызывать
2. Счетчик ссылок
Каждый объект в Python — как воздушный шарик. Пока его кто-то держит (есть ссылки), он остается. Если все нити отпущены — объект исчезает.
Как это работает:
💡Но есть нюансы: Python кэширует строки и мелкие числа (-5 до 256), поэтому их ссылки могут не изменяться.
3. Сборщик мусора
Если объекты ссылаются друг на друга, счетчик ссылок их не удалит. Например:
Такие объекты удаляет сборщик мусора (Garbage Collector, GC), используя алгоритм поколений:
🍼 Поколение 0 — новые объекты, проверяются чаще.
🧑💼 Поколение 1 — пережили одну проверку.
🦖 Поколение 2 — «старожилы», проверяются реже.
Управление GC:
💡 Совет: если у вас много циклических объектов, очищайте их вручную (gc.collect()).
4. Как оптимизировать память вручную
🔸 slots для уменьшения потребления памяти:
🔸 Генераторы вместо списков:
🔸 Массивы вместо списков:
🔸 Кэширование с lru_cache:
5. Как искать утечки памяти
🔸 Используем tracemalloc — показывает, где «утекает» память:
🔸 Визуализация с objgraph — рисует граф зависимостей:
📌 Подробнее про управление памятью в Python: https://clc.to/SNaUtg
Библиотека питониста #буст
Python сам выделяет и очищает память, чтобы вы не думали о байтах и указателях. Но иногда автоматике стоит помочь.
1. Python управляет памятью автоматически
Когда вы пишете
x = [1, 2, 3]
, Python не заставляет вас думать о байтах и указателях. Он сам выделяет память, отслеживает объекты и убирает мусор. Всё это делает менеджер памяти, который хранит: ▪️ Тип данных (int, list, dict)
▪️ Счетчик ссылок (кто использует объект)
▪️ Значение (сами данные)
Такой подход удобен: нет «висячих указателей», не нужно вручную вызывать
malloc/free
, а ресурсы оптимизируются автоматически. 2. Счетчик ссылок
Каждый объект в Python — как воздушный шарик. Пока его кто-то держит (есть ссылки), он остается. Если все нити отпущены — объект исчезает.
Как это работает:
import sys
a = [1, 2, 3]
print(sys.getrefcount(a)) # 2 (одна ссылка в переменной + вызов функции)
b = a
print(sys.getrefcount(a)) # 3 (еще одна ссылка)
del a
print(sys.getrefcount(b)) # 2 (одна ссылка удалена)
b = None # Объект больше не используется → удален
💡Но есть нюансы: Python кэширует строки и мелкие числа (-5 до 256), поэтому их ссылки могут не изменяться.
3. Сборщик мусора
Если объекты ссылаются друг на друга, счетчик ссылок их не удалит. Например:
class Node:
def __init__(self):
self.parent = None
a = Node()
b = Node()
a.parent = b
b.parent = a # Циклическая ссылка!
Такие объекты удаляет сборщик мусора (Garbage Collector, GC), используя алгоритм поколений:
🍼 Поколение 0 — новые объекты, проверяются чаще.
🧑💼 Поколение 1 — пережили одну проверку.
🦖 Поколение 2 — «старожилы», проверяются реже.
Управление GC:
import gc
gc.collect() # Принудительный запуск
gc.set_threshold(700, 10, 10) # Настройка частоты очистки
💡 Совет: если у вас много циклических объектов, очищайте их вручную (gc.collect()).
4. Как оптимизировать память вручную
🔸 slots для уменьшения потребления памяти:
class User:
slots = ['name', 'age'] # Экономит до 40% памяти
def __init__(self, name, age):
self.name = name
self.age = age
🔸 Генераторы вместо списков:
# Неоптимально:
lines = open("data.txt").readlines() #Весь файл в памяти!
# Оптимально:
def read_lines(filename):
with open(filename) as f:
for line in f:
yield line # Читаем по одной строке
🔸 Массивы вместо списков:
import array
numbers = array.array('i', [1, 2, 3, 4, 5]) # Числовой массив (экономия памяти)
🔸 Кэширование с lru_cache:
from functools import lru_cache
@lru_cache(maxsize=1000)
def compute(x):
return x 2 # Кэширует результаты функции
5. Как искать утечки памяти
🔸 Используем tracemalloc — показывает, где «утекает» память:
import tracemalloc
tracemalloc.start()
data = [x for x in range(10_000)] # Проблемный код
snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics('lineno')
print(top_stats[0]) # Где выделена память?
🔸 Визуализация с objgraph — рисует граф зависимостей:
import objgraph
objgraph.show_most_common_types(limit=5) # Какие объекты «размножаются»?
📌 Подробнее про управление памятью в Python: https://clc.to/SNaUtg
Библиотека питониста #буст
👍25❤4❤🔥1
Готовишься к интервью? Мы собрали 10 каверзных вопросов, которые любят задавать тимлиды. Здесь нет банальных задач — только те, на которых спотыкаются 80% кандидатов. Проверь себя и узнай, готов ли ты к следующему собесу!
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💾 Как выбрать стратегию кэширования: разбор 7 популярных алгоритмов
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
➡️ Читать статью
🐸 Библиотека шарписта
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
reloading — это удобный инструмент для Python, который позволяет автоматически перезагружать тело цикла или функцию из исходного кода на каждой итерации, не теряя состояние.
🔹 Когда полезно?
— При обучении нейросетей, когда нужно изменять код на лету без остановки процесса.
— Для добавления логов, сохранения модели, изменения статистики во время работы.
— В других сценариях, где требуется динамическое обновление кода.
Установка:
pip install reloading
🔹Как использовать?
Перезагрузка тела цикла перед каждой итерацией:
from reloading import reloading
for i in reloading(range(10)):
# этот код будет обновляться перед каждой итерацией
print(i)
Перезагрузка функции перед каждым вызовом:
from reloading import reloading
@reloading
def some_function():
# этот код будет обновляться перед каждым вызовом
pass
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2❤🔥1
🎧 Что послушать: обнаружение выбросов в данных с Python
В свежем выпуске Talk Python to Me обсуждают, как находить аномальные данные и использовать их для обнаружения мошенничества, неожиданных закономерностей и научных открытий.
Темы выпуска:
🎙️ Почему выбросы важны? Ошибки, инсайты и скрытые паттерны
🎙️ Методы обнаружения выбросов и их отличие от предсказания и кластеризации
🎙️ Практические кейсы и новые исследования
Если хотите научиться замечать аномалии и использовать их в своих проектах — этот выпуск для вас!
🔗 Слушать подкаст: https://clc.to/S3qK4Q
Библиотека питониста #буст
В свежем выпуске Talk Python to Me обсуждают, как находить аномальные данные и использовать их для обнаружения мошенничества, неожиданных закономерностей и научных открытий.
Темы выпуска:
🎙️ Почему выбросы важны? Ошибки, инсайты и скрытые паттерны
🎙️ Методы обнаружения выбросов и их отличие от предсказания и кластеризации
🎙️ Практические кейсы и новые исследования
Если хотите научиться замечать аномалии и использовать их в своих проектах — этот выпуск для вас!
🔗 Слушать подкаст: https://clc.to/S3qK4Q
Библиотека питониста #буст
❤2👍2
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
☸️ CKAD 2025. Самый свежий гайд по сдаче сертификации Certified Kubernetes Application Developer
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
➡️ Читать статью
🐸 Библиотека devops'a
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤🔥1❤1
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🤖 IT-выживание 2025: как не вылететь с рынка труда в эпоху LLM
В 2025-м айтишникам приходится несладко: старые скиллы уже не в цене, LLM наступают на пятки, а работодатели хотят все и сразу.
👍 Делимся инсайдами, как выжить в новой реальности и не потерять работу в эпоху тотальной оптимизации.
👉 Ссылка на статью: https://proglib.io/sh/zEruLHxYno
Библиотека дата-сайентиста
В 2025-м айтишникам приходится несладко: старые скиллы уже не в цене, LLM наступают на пятки, а работодатели хотят все и сразу.
👍 Делимся инсайдами, как выжить в новой реальности и не потерять работу в эпоху тотальной оптимизации.
👉 Ссылка на статью: https://proglib.io/sh/zEruLHxYno
Библиотека дата-сайентиста
👾4❤🔥2👍2🙏1💯1
🤓 Вопросы подписчиков: как перейти от Jupyter Notebooks к продакшн-коду?
Сегодня мы делимся вопросом от подписчика, который учился и разрабатывал проекты в Anaconda Notebooks, но стремится выйти на новый уровень и освоить написание продакшн-кода на Python.
💬 Он пишет:
✌️ Делитесь своими советами в комментариях!
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
Библиотека питониста #междусобойчик
Сегодня мы делимся вопросом от подписчика, который учился и разрабатывал проекты в Anaconda Notebooks, но стремится выйти на новый уровень и освоить написание продакшн-кода на Python.
Я начинал учиться и программировать в Anaconda Notebooks — это отличный инструмент для учебы и исследований. Однако в индустрии подход к коду совсем другой. Там он структурирован: используются субпапки, главный .py-файл объединяет всё, а развертывание, API и тесты разнесены по отдельным директориям. Это как готовое здание с надежным фундаментом и продуманной структурой, где все части взаимосвязаны.
Если вы работаете с Python в индустрии, не могли бы вы посоветовать, как перейти от стиля работы в ноутбуках к созданию продакшн-кода?
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍2😁1🤔1
Модуль
functools
в Python содержит полезный инструмент — ctools,
который позволяет создавать новые функции, фиксируя часть аргументов уже существующей функции. Это называется частичное применение функций.🔹 Как это работает?
С помощью
partial
можно «заморозить» часть аргументов, чтобы создать новую функцию с меньшим числом входных параметров.📌 Пример: фиксируем аргумент
from functools import partial
def multiply(x, y):
return x * y
double = partial(multiply, 2) # "Фиксируем" x как 2
print(double(5)) # Вывод: 10 (2 * 5)
Теперь
double(5)
эквивалентно multiply(2, 5)
, потому что 2
уже зафиксировано.📌 Пример: фиксируем именованные аргументы
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
say_hi = partial(greet, greeting="Hi")
print(say_hi("Alice")) # Вывод: Hi, Alice!
Теперь
say_hi("Alice")
всегда будет использовать "Hi"
в качестве приветствия.🔹 Зачем использовать
partial
?— Упрощает код и уменьшает дублирование.
— Делает функции удобнее для повторного использования.
— Полезен в обработчиках событий и коллбэках.
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤3🔥2
🚀 Открыт прием заявок на Google Summer of Code 2025
С 2005 года эта программа помогает студентам и начинающим разработчикам погрузиться в реальный мир программирования, работая над крутыми проектами.
📅 Дедлайн подачи заявок: 8 апреля 2025 года.
📍 Подробности и форма заявки: https://clc.to/6wAHEg
Библиотека питониста #свежак
С 2005 года эта программа помогает студентам и начинающим разработчикам погрузиться в реальный мир программирования, работая над крутыми проектами.
📅 Дедлайн подачи заявок: 8 апреля 2025 года.
📍 Подробности и форма заявки: https://clc.to/6wAHEg
Библиотека питониста #свежак
❤2👍2🎉2