Python Portal
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6
Показати більше📈 Аналітичний огляд Telegram-каналу Python Portal
Канал Python Portal (@pythonportal) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 50 893 підписників, посідаючи 2 538 місце в категорії Технології та додатки та 12 054 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 50 893 підписників.
За останніми даними від 31 серпня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -435, а за останні 24 години на -23, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 9.33%. Протягом перших 24 годин після публікації контент зазвичай збирає 4.71% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 4 751 переглядів. Протягом першої доби публікація в середньому набирає 2 396 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 19.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як строка, none, true, модуль, peter.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Всё самое интересное из мира Python
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3GMMF6”
Завдяки високій частоті оновлень (останні дані отримано 01 вересня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
@pytest.mark.skipif, чтобы условно пропускать тесты в зависимости от определённых условий — например, платформы, наличия зависимостей или значений переменных окружения
Декоратор @pytest.mark.skipif(...) указывает Pytest пропустить выполнение теста, если условие истинно.
В примере, тест пропускается, если используется Python версии ниже 3.9, потому что оператор объединения словарей (|) появился только в Python 3.9.
Аргумент reason сообщает причину пропуска, которая отображается в отчёте Pytest.
👉 @PythonPortal«В 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
👉 @PythonPortal