es
Feedback
Pythoner

Pythoner

Ir al canal en Telegram

Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode

Mostrar más
6 811
Suscriptores
+124 horas
+27 días
-3730 días
Archivo de publicaciones
✈️Утечка памяти в Python — это ситуация, когда объекты, которые больше не нужны, продолжают занимать память, потому что на ни
✈️Утечка памяти в Python — это ситуация, когда объекты, которые больше не нужны, продолжают занимать память, потому что на них всё ещё существуют ссылки. Это мешает сборщику мусора освободить ресурсы. ➡️Причины утечки памяти: - Сильные ссылки в замыканиях или глобальных структурах. - Циклические ссылки (например, два объекта ссылаются друг на друга). - Использование списков/словарей как кэшей без ограничения размера. - Неочищенные обработчики событий, соединения или файлы. ➡️Как избежать: - Использовать weakref для слабых ссылок. - Очищать ненужные переменные (del, clear()). - Контролировать размер кэшей. - Проверять утечки с помощью инструментов вроде objgraph, gc, tracemalloc. 🐍 Pythoner

Получи грант до 1,2 млн руб. на обучение в магистратуре 4 офлайн программы, онлайн-магистратура по ML. Гранты до 1,2 млн руб.
Получи грант до 1,2 млн руб. на обучение в магистратуре 4 офлайн программы, онлайн-магистратура по ML. Гранты до 1,2 млн руб. Стажировки, диплом гос. образца и фокус на твоей карьере в ЦУ Подать заявку #реклама 16+ apply.centraluniversity.ru О рекламодателе

Бесплатный курс по PostgreSQL от практиков рынка Присоединяйтесь к бесплатному курсу по основам PostgreSQL от Selectel и Эльб
Бесплатный курс по PostgreSQL от практиков рынка Присоединяйтесь к бесплатному курсу по основам PostgreSQL от Selectel и Эльбрус Буткемп. Он будет полезен Junior- и Middle-специалистам: администраторам баз данных, разработчикам, DevOps-инженерам и аналитикам.   Вы научитесь: 🔹создавать и связывать таблицы, 🔹выполнять базовые операции с данными, 🔹работать с РСУБД. Бонусы: вы можете получить сертификат о прохождении курса, а также промокоды для практики на мощностях Selectel. Начните обучение уже сегодня. Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwCgre4

✈️Это операция, которая при повторном выполнении даёт тот же результат и не изменяет состояние системы дополнительно. ➡️Повыш
✈️Это операция, которая при повторном выполнении даёт тот же результат и не изменяет состояние системы дополнительно. ➡️Повышение надёжности: Если операция случайно выполнится несколько раз (например, из-за сбоя в сети), идемпотентность гарантирует, что это не повлияет на итоговое состояние. ➡️Предотвращение дубликатов: Позволяет избежать непреднамеренного добавления данных или повторного применения изменений. Работа с HTTP: 1. GET — идемпотентен
GET /users/1
2. PUT — идемпотентен
PUT /users/1
{
  "name": "Alice"
}
🔫Повторный вызов не изменит состояние. 3. POST — не идемпотентен
POST /users
{
  "name": "Alice"
}
🔫Каждый вызов создаст нового пользователя. ➡️Идемпотентность в БД Идемпотентный:
DELETE FROM users WHERE id = 5;
🔫Повторное выполнение ничего не изменит, если пользователь уже удалён. Не идемпотентный:
INSERT INTO users (name) VALUES ('Alice');
🔫Повтор — создаст дубликаты. 💡Заключение Идемпотентность = безопасное повторное выполнение. 🐍 Pythoner

Онлайн-магистратура с IT специальностями от Яндекса Совместно с ИТМО, МИФИ, МФТИ. Онлайн-магистратура с актуальными программами и гибким графиком обучения. Получите высокооплачиваемую IT профессию, официальный диплом и практические знания. Господдержка оплаты. Совмещение с работой! Подать заявку #реклама 16+ practicum.yandex.ru О рекламодателе

🧑🏻‍💻Хотите стать Python-разработчиком и научиться работать с современными инструментами, которые используют ведущие компан
🧑🏻‍💻Хотите стать Python-разработчиком и научиться работать с современными инструментами, которые используют ведущие компании? Docker — это ваш ключ к успеху! Присоединяйтесь к открытому уроку «Docker и его возможности для Python-разработчика» от OTUS! Мы расскажем: - Что такое Docker и как он помогает ускорить разработку. - Чем контейнеры отличаются от виртуальных машин. - Как создавать и управлять Docker-образами для Python. - Базовые практики безопасности и оптимизации работы с Docker. Понимание Docker — это не просто тренд, а обязательное знание для разработчиков, стремящихся работать с актуальными технологиями и эффективно разворачивать приложения. Освоив Docker, вы значительно упростите свою работу с проектами, избавитесь от проблем с окружением и ускорите деплой. ⚡️Присоединяйтесь к уроку и получите скидку на большое обучение «Python Developer. Basic». Регистрация открыта: https://otus.pw/kfm7/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

✈️Elasticsearch — это распределенная поисковая система на основе Lucene, которая предоставляет мощные инструменты для поиска
✈️Elasticsearch — это распределенная поисковая система на основе Lucene, которая предоставляет мощные инструменты для поиска и анализа данных. Elasticsearch поддерживает множество функций, включая полнотекстовый поиск, агрегацию данных, машинное обучение и многое другое. Elasticsearch-py — это официальный клиент для работы с Elasticsearch в Python, который позволяет легко интегрировать Elasticsearch в ваши проекты. ➡️Основные возможности Elasticsearch: - Полнотекстовый поиск: Elasticsearch предоставляет мощные инструменты для полнотекстового поиска, что позволяет быстро находить данные в больших объемах текста. - Агрегация данных: Elasticsearch позволяет агрегировать данные, что полезно для аналитики и создания дашбордов. - Машинное обучение: Elasticsearch поддерживает машинное обучение, что позволяет автоматически обнаруживать аномалии и тенденции в данных. - Распределенная архитектура: Elasticsearch является распределенной системой, что позволяет масштабировать поиск и анализ данных. ➡️Пример cоздания клиента и индекса:
from elasticsearch import Elasticsearch

# Создание клиента Elasticsearch
es = Elasticsearch()

# Создание индекса
index_name = 'my_index'
es.indices.create(index=index_name)
➡️Агрегация данных:
# Агрегация данных
res = es.search(index=index_name, body={
    'aggs': {
        'author_count': {
            'terms': {'field': 'author.keyword'}
        }
    }
})
print(res['aggregations'])
🐍 Pythoner

✈️Менеджер контекста позволяет выделять и освобождать ресурсы строго по необходимости. В Python за это отвечает блок с операт
✈️Менеджер контекста позволяет выделять и освобождать ресурсы строго по необходимости. В Python за это отвечает блок с оператором with.
[async] with <функция> as <переменная>:
    #  до и после гарантированно срабатывают события входа в блок with и выхода из него.
__exit__ срабатывает в момент выхода из блока, в том числе по причине возникновения исключения. В этом случае в метод будут переданы exc_class, exc_instance и traceback. ➡️Пример:
with open('file.txt') as f:
    data = f.read()
process_data(data)
Файл гарантированно закроется. ➡️Реализация своего контекстного менеджера на основе класса:
class Printable:
    def __enter__(self):
        print('enter')

    def __exit__(self, type, value, traceback):
        print('exit')
➡️Реализация своего контекстного менеджера с использованием встроенной библиотеки contextlib:
from contextlib import contextmanager

@contextmanager
def printable():
    print('enter')
    try:
      yield
    finally:
      print('exit')
💡Контекстные менеджеры также можно использовать для временной замены параметров, переменных окружения, управления транзакциями в БД и других задач, где важен контроль за ресурсами. 🐍 Pythoner

Хочешь учиться программировать? 🎓 Осваивай Python в Telegram-боте — всё обучение прямо в чате. Не нужно переходить на сайты
Хочешь учиться программировать? 🎓 Осваивай Python в Telegram-боте — всё обучение прямо в чате. Не нужно переходить на сайты — начни программировать здесь и сейчас! Попробовать #реклама 16+ О рекламодателе

👀Включите логирование медленных запросов, задав параметр log_min_duration_statement в конфигурации. Это позволит записывать
👀Включите логирование медленных запросов, задав параметр log_min_duration_statement в конфигурации. Это позволит записывать все запросы, выполняющиеся дольше указанного времени. 👀Используйте команды EXPLAIN или EXPLAIN ANALYZE для просмотра плана выполнения запроса и оценки, где возникают задержки. 👀Проверьте, правильно ли настроены индексы для ускорения работы запросов, и при необходимости оптимизируйте сам запрос. 👀Анализируйте статистику запросов с помощью расширения pg_stat_statements, которое собирает информацию о времени выполнения и частоте запросов. 🐍 Pythoner

HTML, CSS, JS, Node.JS, 🤯 - пора бы всё объединить! Все для изучения веба 👉 Фронтенд - самый большой канал для изучения фро
HTML, CSS, JS, Node.JS, 🤯 - пора бы всё объединить! Все для изучения веба 👉 Фронтенд - самый большой канал для изучения фронта 👉 Верстка - все о верстке 👉 Node.JS - для тех кто хочет писать бэк на JS Собрано всё, проверяй🔥

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать

🤔Разбор str.isupper() -> bool Возвращает флаг, указывающий не то, содержит ли строка символы только верхнего регистра. Аналогично с islower, только для нижнего регистра. Метод upper() возращает копию строки, в которой все буквы сконвертированы к большому регистру (заглавные буквы). Все остальные символы остаются неизмененными. Аналогично с lower(), только к нижнему регистру. В итоге получаем False == False, THIS IS NOW! == this is now! —> True, False 🐍 Pythoner

Что выдаст код выше❔
Anonymous voting

photo content

big tech night — «Ночь музеев» в мире IT Экскурсии по офисам крупных IT-компаний, доклады экспертов, нетворкинг — это только
big tech night — «Ночь музеев» в мире IT Экскурсии по офисам крупных IT-компаний, доклады экспертов, нетворкинг — это только часть того, что ждёт вас на big tech night. 12 сентября топовые компании впервые одновременно откроют двери ночью и покажут, где рождаются технологии. Приходите изнутри посмотреть на новейшие разработки и фичи — всё то, чего не видно при свете дня. Ивент пройдёт в Москве на площадках Яндекса, Сбера, X5, Т-Банка и Lamoda. Каждая компания-организатор готовит свои сюрпризы: иммерсивные экскурсии, IT-стендап, поэтический AI-слэм, Robo-зона с роботами-официантами и пиццамейкерами, Лаборатория софт-скилов и многое другое. Успевайте зарегистрироваться — количество мест ограничено! Зарегистрироваться #реклама 16+ bigtechnight.ru О рекламодателе

✈️Зависимость (dependency) — это внешний объект, который нужен какому-то компоненту для работы. Внедрение зависимостей (Depen
✈️Зависимость (dependency) — это внешний объект, который нужен какому-то компоненту для работы. Внедрение зависимостей (Dependency Injection) — это способ передать нужные зависимости извне, а не создавать их внутри. ➡️Простой пример:
class Engine:
    def start(self):
        print("Engine started")

class Car:
    def __init__(self, engine: Engine):
        self.engine = engine

    def run(self):
        self.engine.start()
⬆️Здесь Car не создает Engine внутри себя. Внедрение происходит через конструктор.
engine = Engine()
car = Car(engine)  # <-- внедрили зависимость
car.run()
➡️Как реализовать вручную в Python? В Python DI часто реализуется через: 1. Конструктор (constructor injection):
class Service:
    def __init__(self, db_client):
        self.db = db_client
2. Setter-инъекция (через метод):
class Service:
    def set_db(self, db_client):
        self.db = db_client
3. Передача через параметры функции:
def handler(service: Service):
    return service.do_stuff()
➡️Зачем это нужно? - Легко тестировать (можно подменить зависимости моками) - Повышает гибкость (меняем реализацию зависимости) - Разделяет ответственность (класс делает только то, что должен) 🐍 Pythoner

От сисадмина до DevOps'а Рост карьеры и зарплаты уже сегодня вместе со Слёрмом! В канале полезные советы, бесплатные гайды и скидки на курсы. Подписаться #реклама 16+ О рекламодателе

✈️Основное различие между этими двумя методами состоит в том, что __new__ обрабатывает создание объекта, а __init__ обрабатыв
✈️Основное различие между этими двумя методами состоит в том, что __new__ обрабатывает создание объекта, а __init__ обрабатывает его инициализацию. __new__ вызывается автоматически при вызове имени класса (при создании экземпляра), тогда как init вызывается каждый раз, когда экземпляр класса возвращается __new__, передавая возвращаемый экземпляр в __init__ в качестве параметра self, поэтому даже если вы сохранили экземпляр где-нибудь глобально/статически и возвращали его каждый раз из __new__, для него все-равно будет каждый раз вызываться __init__. Пример:

class Singleton:
    _instance = None

    def __new__(cls):
        if cls._instance is None:
            print("Создание объекта")
            cls._instance = super().__new__(cls)
        return cls._instance

    def __init__(self):
        print("Инициализация объекта")

a = Singleton()
b = Singleton()
⬆️Вывод:
Создание объекта
Инициализация объекта
Инициализация объекта
__new__ сработал один раз — объект создан. __init__ вызвался дважды — каждый раз при создании экземпляра. 🐍 Pythoner

Хотите в IT, но код видели только в «Матрице»? В июле школа программирования «Хекслет» дарит комфортные условия на старт обуч
+3
Хотите в IT, но код видели только в «Матрице»? В июле школа программирования «Хекслет» дарит комфортные условия на старт обучения в IT для новичков. Python, Java, Frontend, PHP, Data Analytics со скидкой 15% от цены— выбирайте направление, а мы поддержим ваш первый шаг. Учим с нуля, доводим до работы. Более 4500 наших выпускников уже в профессии. Вас ждет: ✅ есть бесплатные курсы по основам ✅ помощь наставников — практикующих разработчиков; ✅ участие в коммерческих проектах; ✅ гарантированная стажировка; ✅ беспроцентная рассрочка. Все это по специальным ценам, чтобы «не ждать понедельника». Перейти на сайт #реклама 16+ ru.hexlet.io О рекламодателе