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

Ссылка: @Portal_v_IT

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

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

Это значение 2 * pi (). Его добавили, поскольку отношение длины окружности к ее радиусу является гораздо более фундаментальным и интересным, чем отношение между ее окружностью и диаметром (скопировано из PEP).

#теория
🌚23👍14🗿5🐳3🤔1
 typing import TypedDict

Класс позволяет задать подсказки для словаря. Таким образом мы получаем предупреждения, если словарь не соответствует структуре и подсказки для ключей.

📌 PEP 589

#теория
👍241🔥1
from __future__ import barry_as_FLUFL

Пасхальное яйцо, которое работает только в интерактивной оболочке. Оно появилось, когда Guido, спустя 20 лет работы над языком, ушёл в отставку.

Дядя Барри, преемник Гвидо, как новый руководитель решил внести ряд изменений, одним из которых было использование «алмазного оператор» (<>)

PEP 401

#объяснение
👍18😁5