Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month
⚙️ inspect.getgeneratorstate()inspect.getgeneratorstate()
позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.
Python Learning 👩💻
⚙️ types.new_class()types.new_class()
позволяет динамически создавать новые классы во время выполнения программы. Это полезно для метапрограммирования, создания классов с динамическими атрибутами и автоматической генерации API.
Python Learning 👩💻
🚫 Антипаттерн недели: Ловушка с оператором is
при сравнении строк
В Python оператор is
проверяет, ссылаются ли две переменные на один и тот же объект в памяти, а не равны ли их значения. Это может приводить к неожиданным ошибкам при сравнении строк.
✔️ Используйте ==
для сравнения значений строк, а не is
.
Python Learning 👩💻
🚀 Работаешь в Data Science? Заяви о себе на Data Fusion Contest 2025!
Data Fusion Contest 2025 это —
🔹возможность прокачать скилы на практике, внести вклад в развитие сообщества DS в России, а также погрузиться в новые DS/ML-методы;
🔹шанс сразиться с лучшими представителями профессии и проявить себя;
🔹возможность получить внушительный приз.
В этом году участников ждут 2 основные задачи:
«Label Craft» — про предсказание категории товаров.
«4 Cast» — про предсказание динамики платежей на последующие 12 недель.
И одна образовательная задача — «Distribution».
Победители смогут презентовать свои решения на конференции Data Fusion 2025 в кластере «Ломоносов».
Организаторы соревнования — ИТ-холдинг Т1 и ВТБ.
📆 Даты проведения соревнования: с 13 февраля по 7 апреля 2025 года.
➡️ Регистрируйся на соревнование прямо сейчас.
Покажи, на что ты способен! 🔥
Подробнее о рекламодателе
⚙️ sys.call_tracing()sys.call_tracing()
позволяет выполнить функцию с заданными аргументами, включая трассировку вызовов, установленную через sys.settrace()
. Это полезно для профилирования и отладки.
Python Learning 👩💻
⚙️ pathlib.Path.read_text()pathlib.Path.read_text()
— удобный способ прочитать содержимое текстового файла в строку. Этот метод автоматически открывает файл, читает его содержимое и закрывает его после чтения.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Функция enumerate() нумерует элементы списка. Параметр start=1 задаёт начало нумерации с 1, а не с 0, поэтому вывод будет 1 a, 2 b, 3 c. Код выполняется корректно.
❓ Вопрос на собеседовании
Как работает copy-on-write (COW) в Python и в каких случаях он применяется?
Ответ ⬇️
Copy-on-write (COW) — это оптимизация, при которой объект копируется только при попытке его изменения. В Python это особенно заметно при использовании fork() в многопроцессных программах: дочерний процесс получает копию памяти родительского процесса, но реальные копии данных создаются только при их изменении.
Это помогает эффективно использовать память при работе с процессами, но может привести к неожиданным накладным расходам, если изменять большие объёмы данных после fork().
Пример использования ⚙️
import os
data = [1] * 10**6 # Большой список
pid = os.fork()
if pid == 0: # Дочерний процесс
data[0] = 42 # Копирование происходит только здесь!
print("Дочерний процесс завершён")
else:
print("Родительский процесс")
⚙️ functools.singledispatch
Метод functools.singledispatch
позволяет создавать перегруженные функции на основе типа первого аргумента. Это полезно для написания обобщённого кода без сложных if isinstance(...)
.
Python Learning 👩💻
⚙️ threading.Timer()
Метод threading.Timer()
позволяет создавать таймеры, которые выполняют определенную функцию через заданный интервал времени. Это полезно для отложенного выполнения задач без блокировки основного потока.
Python Learning 👩💻
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
⚙️ signal.setitimer()
Метод signal.setitimer()
позволяет устанавливать таймер, который автоматически отправляет сигнал процессу через заданные интервалы времени. Это полезно для периодического выполнения кода без создания потоков.
Python Learning 👩💻
⚙️ importlib.reload()
Метод importlib.reload()
позволяет повторно загрузить модуль во время выполнения программы. Это полезно для динамической перезагрузки кода без необходимости перезапуска интерпретатора.
Python Learning 👩💻
⚙️ sys._getframe()
Метод sys._getframe()
позволяет получить объект текущего или родительского стека вызовов. Это полезно для отладки, анализа кода и динамического доступа к локальным переменным.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Множество (set) в Python хранит только уникальные элементы, поэтому дубликаты 3 и 4 автоматически удаляются при создании numbers. Операция add(3) не изменяет множество, так как 3 уже в нём есть. Операция remove(2) удаляет 2 из множества. Код выполняется корректно.
😈 Челлендж по запуску 12 простых IT-проектов за 12 месяцев
Летом 2023 г. появилось комьюнити инди-хакеров, в котором ребята решили запускать 1 простой продукт в онлайне каждый месяц.
И в реальном времени показывать: как разрабатывают, продвигают и сколько получилось заработать на запусках таких микро-проектов.
Например, вот 👉 пост про то, почему американцы платят $40 за простой конвертер картинок, который сделали за 4 недели. Несмотря на то, что вокруг полно бесплатных аналогов)
👉 Этот пост про то, как за 2 недели запустили темную тему с тарифами от $5 до $99. Четыре таких продукта приносят на пассиве как зп среднего разработчика.
А вот 👉 тут — как все может грустно закончиться, если 2 года пилить сложный продукт, не показывая его рынку.
👉 Здесь, как за 30 дней сделали приложение для решения задач по математике, которое через 4 месяца вышло на $1200/месяц.
А 👉 здесь рассказывают, как заработали 1 700 000 рублей на боте для создания фотокниг и какие фейлы допустили.
Первая находка в их комьюнити IT билдеров — метод, который позволяет сделать запуск за 1 месяц.
Вторая находка — метод продвижения, который они используют. В среднем на продвижение одного IT-продукта уходит $150, причем есть продукты с 200К+ юзеров 🙂
Вот здесь можно подписаться на канал, чтобы подглядеть за их запусками. А может, и попробовать сделать такой простой продукт самому)
⚙️ sys._current_frames()sys._current_frames()
позволяет получить стеки вызовов всех активных потоков в программе. Это полезно для отладки многопоточных приложений.
Python Learning 👩💻
⚙️ dataclasses.astuple()dataclasses.astuple()
преобразует объект dataclass в неизменяемый кортеж, что удобно для сериализации и работы с неизменяемыми структурами.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Функция filter() применяет лямбда-функцию lambda x: x % 2 == 0, оставляя только чётные числа. В результате получаем [2, 4, 6]. Код выполняется корректно.
Тест: узнай свой грейд и зарплату
1. Переходи в бота ШОРТКАТ @shortcut_py_bot
2. Ответь на пару вопросов о своём опыте работы
3. В зависимости от опыта команда сервиса предложит формат оценки грейда — тестирование или полноценное мок-интервью с опытным ментором
4. После ты узнаешь свой грейд и з/п в рынке — на основе опыта разработчиков из бигтеха
Если опыта работы у тебя совсем нет, можно попробовать пройти, но лучше тест сработает на тех, кто уже работает в разработке.
Пройти тестирование в ШОРТКАТ ➡️ @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxDrfCh
⚙️ contextlib.ExitStackcontextlib.ExitStack
позволяет управлять несколькими контекстными менеджерами динамически.
Python Learning 👩💻
НЕ изи войти в айти! 😬
Тебя не бесят «гуру», которые обещают зп от 300к после двух недель на их легендарном курсе по Python за 150к? 😂 - Меня ДА!
Потому что, чтобы стать программистом, надо пропахать как чёрт за партой хотя бы годик!
А чтобы не свихнуться в одиночку, залетай в чат начинающих Python-щиков, где ты получишь:
1️⃣ Разбор сложных вопросов простым языком
2️⃣ Поддержку тех, кто тоже с 0 учит Python, и не боится показаться глупым
3️⃣ Регулярные плюшки в виде стримов от препода с 15-ти летним опытом
➡️А еще, в закрепе есть БЕСПЛАТНЫЙ вводный курс по Python, ну это так, к слову))
Короче, всё для прокачки! Залетай — ссылка на чат (тык)
⚙️ sys.setprofile()
Метод sys.setprofile()
позволяет установить функцию профилирования, которая вызывается при каждом вызове, возврате или исключении в Python-коде. Это полезно для отладки, анализа производительности и трассировки выполнения кода.
Python Learning 👩💻
Что спрашивают на собеседовании у Middle Python-разработчика?
Уже завтра, 11 февраля в 19:00 мск — бесплатное открытое собеседование в прямом эфире!
Интервьюер Савва Демиденко, ex. TechLead в Яндексе, Авито и другом русском бигтехе будет задавать реальные вопросы и задачи разработчику-добровольцу. В конце — время вопросов ментору из зала.
Что узнаешь на эфире:
✅ Какие вопросы задают на собеседованиях и зачем
✅ Как подготовиться, чтобы получить достойный оффер
✅ Чего ждут от кандидатов на Middle Python
Запишись на эфир в боте ШОРТКАТ → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqumRSUd
🚫 Антипаттерн недели: Использование mutable default arguments
В Python опасно использовать изменяемые объекты (списки, словари, множества) как значения по умолчанию в аргументах функций. Это приводит к непредсказуемому поведению, так как объект создаётся один раз при определении функции и сохраняет своё состояние между вызовами.
✔️ Используйте None
в качестве значения по умолчанию и создавайте новый объект внутри функции.
Python Learning 👩💻
❓ Вопрос на собеседовании
Как работает cooperative multitasking
в Python, и почему asyncio не использует потоки?
Ответ ⬇️
В Python asyncio использует кооперативную многозадачность (cooperative multitasking), где задачи передают управление друг другу явно (await). Это отличается от потоков (threading), которые работают конкурентно, но ограничены GIL.
Асинхронность полезна для операций ввода-вывода (сетевые запросы, работа с файлами), так как позволяет одной задаче выполняться, пока другая ждёт результата.
Пример использования ⚙️
import asyncio
async def task(name, delay):
await asyncio.sleep(delay)
print(f"Задача {name} завершена")
async def main():
await asyncio.gather(task("A", 2), task("B", 1))
asyncio.run(main())
⚙️ sys.addaudithook()
Метод sys.addaudithook()
позволяет отслеживать определённые события в Python, такие как импорт модулей, вызовы системных функций и доступ к ресурсам. Это полезно для мониторинга безопасности и отладки.
Python Learning 👩💻
⚙️ gc.get_objects()
Метод gc.get_objects()
из модуля gc
позволяет получить список всех объектов, отслеживаемых сборщиком мусора в Python. Это полезно для анализа утечек памяти и отладки.
Python Learning 👩💻
⚙️ __import__()
Встроенная функция __import__()
позволяет динамически импортировать модули во время выполнения программы. Это полезно, когда имя модуля заранее неизвестно или зависит от условий.
Python Learning 👩💻
⚙️ dis.Bytecode()
Метод dis.Bytecode()
из модуля dis
позволяет анализировать байт-код Python-функций. Это полезно для оптимизации кода и понимания его работы на уровне интерпретатора.
Python Learning 👩💻