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

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
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
importlib

Библиотека появилась в Python 3.1 и реализует функцию __import__(). importlib применяется не так часто и нужен только при работе с модулями.

#теория
👍1