Разъяснивший Python
8.18K subscribers
2.43K photos
40 videos
30 files
2.28K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
contextmanager

Мы все пользуемся with и, согласитесь, это очень удобная фича. Но у неё есть один недостаток — для реализации одной функции нужен огромный класс.

Проблему решил декоратор contextmanager из contextlib. Просто повесив его на функцию мы можем быстро сделать то, что нам надо. Как его применять найдёте тут.

#теория
👍16
This media is not supported in your browser
VIEW IN TELEGRAM
Типичная реклама айти курсов:
😁37🤡92🤬2🤮2👍1😍1🤨1
json.dumps() не принимает UTF-8

Все символы, которые не относятся к ASCII будут экранированы. Это говорит нам, что вывод всегда будет набором допустимых символов ASCII.

Тут есть два решения: первое это задать ensure_ascii=False, тогда значения останутся в виде unicode или декодировать строку на стороне получателя.

Можете почитать на StackOverflow рассуждение на эту тему.

#объяснение #json
👍5🔥4
typing.TypeVar

Полезно, если вы не точно не знаете что пойдёт на вход, а тип на выходе зависит от того, что пришло. Это ещё называют Generics.

На месте T появится тип, который пользователь передал на в x. То есть, если мы вызовем repeat(1, 5) то T будет int, а вернётся тип, принадлежащий Sequence[int].

#теория
🔥5👍1🤔1
Полезные материалы про карьеру в IT от Selectel🔥

В канале про:
— технологии (паттерны проектирования, работа в Git, полезные линтеры)
— карьеру (как составить личный план развития или как провести код-ревью)

А еще инсайты про работу в команде Selectel (как проходит ретро команды или шавадэй)

Подписывайтесь → @selectelcareers

Реклама. ООО Селектел 2VtzqvjnmoX
Fullstack на Django и Vue.js

Статья про расширения и технологии, которые можно использовать при создании своего сайта на Django.

В статье говорится про авторизацию, тестирование, создание Frontend'а, загрузку сайта на прод, аналитику и как это всё правильно настроить.

Читать

#теория
👍3
pyarmor - библиотека, предназначенная для защиты исходного кода от изменения и взлома 🛡

Так как Python код переводится в более простой bytecode, который нужен для ускорения работы интерпретатора, код весьма сложно защитить от взлома. Даже если конвертировать программу в исполняемый .exe файл, достать информацию из полученного экзешника не составит труда.

Поэтому, чтобы защитить код, используют различные методы обфускации, то есть запутывания кода.

Работать с pyarmor очень просто, нужно только установить библиотеку и передать ей на вход путь до директории с python-скриптами 🔸

В консоли вводим:
>>> pip install pyarmor

>>> pyarmor obfuscate C:\Users\User\test

В текущей рабочей директории сгенерируется папка dist , в которой и будут лежать обфусцированные файлы. Выглядеть они будут примерно так, как на скриншоте. Но при запуске будут выполняться точно так же, как и исходные скрипты.

Более подробно об этой либе можно почитать в тут 👌🏻

P.S. также есть версия с графическим интерфейсом - pyarmor-webui
5👍2🤔2
contextlib.suppress

Функция подавляет исключения, которые могут создать нам проблем, а их обработка не имеет никакого смысла.

По своей сути это try/except Exception: pass только с with. Такой вариант выглядит приятнее и занимает на одну строку меньше.

#теория
👍12
TYPE_CHECKING

Полезная переменная, если у вас есть цикличные зависимости. Например, у Article есть category: Category, а у Category есть атрибут articles: list[Article].

С TYPE_CHECKING можно спрятать импорты. Интересный факт, эта константа всегда False, а значит код в Runtime никогда не выполнится.

#теория
👍16
Model-Based Reinforcement Learning: From Data to Continuous Actions with a Python-based Toolbox
Milad Farsi
2023

Обучение с подкреплением является одной из основных парадигм машинного обучения (ML), в которой интеллектуальный агент выполняет действия, обеспечивающие оптимальное поведение устройств. Хотя эта парадигма машинного обучения приобрела огромный успех и популярность в последние годы, предыдущие исследования были сосредоточены либо на теории - оптимальном управлении и динамическом программировании - либо на алгоритмах, большинство из которых основаны на моделировании.

🤓СКАЧАТЬ КНИГУ

#python #machinelearning #eng
👍1
Масштабируемый Production-Ready Telegram бот на Python

Масштабируемый значит, что бот сможет обрабатывать как одного пользователя, так и 300 000 юзверей. Production-Ready значит, что его можно заливать на прод.

Автор создал такого бота использую Django, Celery и python-telegram-bot. Всё выложил на Dokku (альтернатива Heroku).

Перейти к чтению

#статья
👍10🤔1
Литералы

Чтобы указать, что функция может принимать заранее известные значения ("left", "center", "right"), используется тип Literal.

Его можно заметить в open(). Функция принимает 'r', 'rb', 'w', но если передать 'kwargs', IDE выдаст предупреждение.

Literal можно вкладывать друг в друга: Literal['a', Literal['b']]. Это удобно для связывания нескольких литералов.

📌 PEP 586

#теория
83👍1
Что такое PEP

Python Enhancement Proposals (PEP) — Предложения по улучшению Python. Здесь описываются все нововведения в Python.

Основной — PEP 0, здесь хранятся ссылки на все предложения. Вас может заинтересовать with, __getattr__ у модулей, ленивые импорты (реализованы в Python 3.12).

P.S. Здесь я беру темы для постов :)

#теория
👍10🐳1
types.MappingProxyType

Доступный только для чтения словарь. По своей сути — Read-only обёртка для словаря. Данные считывать можно, а менять — нельзя.

#теория
🔥7👍2🤔1
from enum import Enum

Библиотека для создания именованных перечислений. Признайте, что намного проще понять STATUS_CODE.ACCEPTED, чем просто 202.

Несмотря на свою простоту, у модуля огромный функционал. Если у вас в коде есть магические числа (1, 2, 3, 4), то воспользуйтесь enum.

📌 Документация

#теория
👍24🔥31
Переменная __path__

У каждого пакета есть переменная __path__ в которой он ищет нужные модули. Переменную можно использовать для подмены методов или во время поиска ошибок.

Изменять переменную вручную — плохая идея, лучше таким не заниматься.

#теория
👍1
Шпаргалка по Django

Будет полезна тем, кто желает освоить веб-разработку на Python. Здесь вы найдёте базовую информацию по работе с фреймворком — от его установки и до операций с Git.

https://cheatography.com/sebtoga/cheat-sheets/django/

#Шпаргалка
👍181
Пакет

Это набор модулей (исходных файлов Python), которые предоставляют определенный набор функций или возможностей.

С Python 3.6 это любая папка с .py файлами. Но вообще считается хорошим тоном создавать в пакетах файл __init__.py.

Файл __init__.py вызывается когда модуль импортируется.

#теория
👍10