Python Portal
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6
Больше📈 Аналитический обзор Telegram-канала Python Portal
Канал Python Portal (@pythonportal) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 52 335 подписчиков, занимая 2 560 место в категории Технологии и приложения и 11 934 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 52 335 подписчиков.
Согласно последним данным от 13 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -821, а за последние 24 часа — -28, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 9.36%. В первые 24 часа после публикации контент обычно набирает 5.67% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 4 902 просмотров. В течение первых суток публикация набирает 2 970 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 26.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как строка, none, true, модуль, peter.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Всё самое интересное из мира Python
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3GMMF6”
Благодаря высокой частоте обновлений (последние данные получены 14 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
«В Pandas ты учишься ремеслу. В PySpark — масштабированию.»👉 @PythonPortal
@observe, чтобы трассировать отдельные компоненты (инструменты, ретриверы, генераторы)
– Привязывай метрики к каждому из компонентов
– Получай визуальный разбор — что работает, а что ломается
И всё. Переписывать существующий код не нужно. 😄
Пример есть выше для RAG-приложения.
Deepeval — полностью open-source, уже 8500+ звёзд на GitHub. Можно легко задеплоить у себя. Все данные останутся под твоим контролем.
👉 @PythonPortaldecimal_number = 10
binary_number = bin(decimal_number)
print(binary_number)
# Вывод: '0b1010'
🔹Из двоичной в десятичную
binary_number = '1010'
decimal_number = int(binary_number, 2)
print(decimal_number)
# Вывод: 10
🔹Из десятичной в восьмеричную
decimal_number = 10
octal_number = oct(decimal_number)
print(octal_number)
# Вывод: '0o12'
🔹Из восьмеричной в десятичную
octal_number = '12'
decimal_number = int(octal_number, 8)
print(decimal_number)
# Вывод: 10
🔹Из десятичной в шестнадцатеричную
decimal_number = 10
hex_number = hex(decimal_number)
print(hex_number)
# Вывод: '0xa'
🔹Из шестнадцатеричной в десятичную
hex_number = 'a'
decimal_number = int(hex_number, 16)
print(decimal_number)
# Вывод: 10
👉 @PythonPortal__init__() конструктором, но на самом деле это не так.
Настоящий конструктор в Python — это метод __new__(). Давайте разберёмся, как это доказать, на небольшом примере.
Сначала добавим несколько print-вызовов в метод __init__(), чтобы понять, что происходит при создании экземпляра класса: (2 фото)
Теперь добавим метод __new__() и посмотрим, вызывается ли __init__() до или после __new__(). (3 фото)
Если запустить этот код, станет видно, что первым вызывается именно метод __new__()
Хочу отметить, что в большинстве случаев вам не придётся использовать метод __new__() в своём коде. На практике он применяется почти исключительно в метапрограммировании, фабричных функциях и при работе с API — по крайней мере, из того, что мне доводилось видеть.
Так что продолжайте спокойно использовать проверенный метод __init__() — он по-прежнему отлично справляется со своей задачей 😄
👉 @PythonPortalinit, add, commit, log, checkout, status и другие — при этом всё остаётся совместимым с настоящим Git
Git кажется сложным, но его ядро на удивление простое. Проект wyag позволяет «разобрать его на атомы» и понять фундаментальные концепции через код 😡
👉 @PythonPortalitertools.zip_longest() вместо zip(), чтобы все элементы были объединены в пары.
zip() объединяет элементы, пока один из итерируемых не закончится:
>>> list(zip(letters, numbers))
[('a', 1), ('b', 2)]
zip_longest() продолжает объединение до конца самого длинного итерируемого объекта:
>>> list(zip_longest(letters, numbers))
[('a', 1), ('b', 2), ('c', None)]
fillvalue позволяет указать значение-заполнитель для отсутствующих элементов:
>>> list(zip_longest(letters, numbers, fillvalue='N/A'))
[('a', 1), ('b', 2), ('c', 'N/A')]
Используй zip_longest, когда важно сохранить все данные, даже при разной длине итерируемых объектов 🤵
👉 @PythonPortallocals()
Встроенная функция locals() возвращает словарь, представляющий текущую локальную таблицу символов.
Таблица символов — это структура, в которой Python хранит все имена (переменные, функции, классы и т.д.), доступные в определённой области видимости.
Когда locals() вызывается внутри функции, она возвращает словарь со всеми локальными переменными, определёнными в рамках этой функции.
В примере переменные z и x определены локально внутри функции. Переменная y = 20 является глобальной и не относится к области видимости my_func(). Поэтому locals() внутри my_func не включает y
👉 @PythonPortal__init__(self) – Инициализация нового объекта
__str__(self) – Строковое представление
__repr__(self) – Представление для отладки
__len__(self) – Длина объекта
__getitem__(self, key) – Доступ к элементу по индексу/ключу
__setitem__(self, key, value) – Установка значения по индексу/ключу
__delitem__(self, key) – Удаление элемента по ключу
__eq__(self, other) – Проверка на равенство
__add__(self, other) – Поведение оператора сложения +
__call__(self, ...) – Делает экземпляр вызываемым как функция
👉 @PythonPortalwith гарантирует, что инициализация и очистка ресурса будут выполнены автоматически, даже если в блоке возникнет исключение. Это делает код чище и надёжнее.
Вместо того чтобы вручную замерять время до и после блока кода, можно использовать контекстный менеджер — это чистое и питоничное решение.
Обычно контекстный менеджер реализуется как класс с методами __enter__ и __exit__
Но есть более лаконичный способ — использовать декоратор @contextmanager из модуля contextlib, чтобы писать генераторные менеджеры без лишнего шаблонного кода.
Пример как использовать контекстный менеджер как таймер прикрепил ✌️
👉 @PythonPortalpip install auto-py-to-exe
👉 @PythonPortaldeque.maxlen
Знаете ли вы, что можно задать максимальную длину списка, используя deque из модуля collections?
Класс deque (двусторонняя очередь) из модуля collections поддерживает параметр maxlen, который устанавливает максимальный размер очереди. Когда очередь достигает этого размера, добавление новых элементов автоматически удаляет элементы с противоположного конца, реализуя поведение "первым пришёл — первым ушёл" (FIFO) с ограничением по размеру.
В приведённом примере deque имеет максимальную длину 3. При добавлении значения 4 удаляется 1, что делает такую структуру идеальной для реализации скользящего окна последних трёх элементов 📖
👉 @PythonPortalrepo.new в адресной строке браузера — и сразу откроется страница создания нового репозитория на GitHub.
Такой простой способ сэкономить время 🤯
👉 @PythonPortalСтань олдом этого канала 🔥Вступить в CodeGuard - t.me/codeguard
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
