Декораторы Python, которые могут сократить код в два раза
Обертки Python позволяют добавить новую функциональность или модифицировать ее поведение без непосредственного изменения исходного кода.
Обертки можно использовать в различных сценариях:
• Расширение функциональности: Мы можем задействовать декоратор и добавить такие функции, как ведение журнала, измерение производительности или кэширование.
• Многократное использование кода: Мы можем применить функцию-декоратор к нескольким элементам: благодаря этому можно избежать дублирования кода и достичь согласованного поведения различных компонентов.
• Модификация поведения: Мы можем, к примеру, проверять аргументы функции, не используя многочисленные строки assert.
Подробнее здесь.
#статьи
@python_practics
Обертки Python позволяют добавить новую функциональность или модифицировать ее поведение без непосредственного изменения исходного кода.
Обертки можно использовать в различных сценариях:
• Расширение функциональности: Мы можем задействовать декоратор и добавить такие функции, как ведение журнала, измерение производительности или кэширование.
• Многократное использование кода: Мы можем применить функцию-декоратор к нескольким элементам: благодаря этому можно избежать дублирования кода и достичь согласованного поведения различных компонентов.
• Модификация поведения: Мы можем, к примеру, проверять аргументы функции, не используя многочисленные строки assert.
Подробнее здесь.
#статьи
@python_practics
👍8
TurboGears
TurboGears — это веб-фреймворк для разработки веб-приложений, написанный на языке Python. Во время его создания вдохновение черпалось из опыта использования Django и Rails. Эти фреймворки имеют ряд ограничений и недостатков, а TurboGears попытался решить эти проблемы.
Основное отличие этого фреймворка от того же Django — не изобретение велосипеда в виде собственной ORM, а использование в качестве основных компонент стандартных и популярных библиотек, таких как Pylons, SQLAlchemy, Genshi и Repoze.
Ключевые особенности TurboGears:
• поддержка множества баз данных;
• поддержка различных JavaScript-библиотек;
• поддержка множества форматов обмена данными;
• поддержка горизонтального масштабирования данных по примеру шардинга;
• возможность расширения средствами стандартных WSGI-компонент.
Про этот и другие фреймворки вы можете прочитать по ссылке ниже👇
#фреймворки_библиотеки
@python_practics
TurboGears — это веб-фреймворк для разработки веб-приложений, написанный на языке Python. Во время его создания вдохновение черпалось из опыта использования Django и Rails. Эти фреймворки имеют ряд ограничений и недостатков, а TurboGears попытался решить эти проблемы.
Основное отличие этого фреймворка от того же Django — не изобретение велосипеда в виде собственной ORM, а использование в качестве основных компонент стандартных и популярных библиотек, таких как Pylons, SQLAlchemy, Genshi и Repoze.
Ключевые особенности TurboGears:
• поддержка множества баз данных;
• поддержка различных JavaScript-библиотек;
• поддержка множества форматов обмена данными;
• поддержка горизонтального масштабирования данных по примеру шардинга;
• возможность расширения средствами стандартных WSGI-компонент.
Про этот и другие фреймворки вы можете прочитать по ссылке ниже👇
#фреймворки_библиотеки
@python_practics
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Крестики нолики
Игра, в которой два игрока рисуют на поле из 9 квадратиков каждый свою фигуру (крестик или нолик) до тех пор, пока не получат линию из 3-х одинаковых фигур или пока все квадратики не будут заполнены.
В данном случае игру можно реализовать для одного игрока с компьютером, основная сложность будет в программировании ходов компьютера.
#sandbox
@python_practics
Игра, в которой два игрока рисуют на поле из 9 квадратиков каждый свою фигуру (крестик или нолик) до тех пор, пока не получат линию из 3-х одинаковых фигур или пока все квадратики не будут заполнены.
В данном случае игру можно реализовать для одного игрока с компьютером, основная сложность будет в программировании ходов компьютера.
#sandbox
@python_practics
👍21
Что из следующего ниже верно о кортежах?
Anonymous Quiz
53%
Кортежи можно складывать
25%
Кортеж занимает больше памяти, чем список
23%
У кортежа есть метод append()
👍1
Внимание! - Вопрос!
Объясните разницу между списком и кортежем?
Список изменяемый, а кортеж — нет. Кортежи можно хешировать, как в случае создания ключей для словарей.
#вопросы_из_собеседований
Объясните разницу между списком и кортежем?
❤4
Обучение с подкреплением на PyTorch.
Вы научитесь использовать алгоритм «многоруких бандитов» и аппроксимацию функций; узнаете, как победить в играх Atari с помощью глубоких Q-сетей и как эффективно реализовать метод градиента стратегии; увидите, как применить метод ОП к игре в блэкджек, к окружающим средам в сеточном мире, к оптимизации рекламы в интернете и к игре Flappy Bird.
Книга в формате pdf👇
#курсы_книги
Вы научитесь использовать алгоритм «многоруких бандитов» и аппроксимацию функций; узнаете, как победить в играх Atari с помощью глубоких Q-сетей и как эффективно реализовать метод градиента стратегии; увидите, как применить метод ОП к игре в блэкджек, к окружающим средам в сеточном мире, к оптимизации рекламы в интернете и к игре Flappy Bird.
Книга в формате pdf👇
#курсы_книги
👍4😁1
GPT-Migrate — ИИ-инструмент для миграции с одного языка или фреймворка на другой
Как работает GPT-Migrate
Для переноса кода из
1. GPT-Migrate создает среду Docker для —
2. GPT-Migrate перестраивает новый —
3. Инструмент запускает среду Docker с новой кодовой базой, которая отображается на —
4. ИИ разрабатывает модульные тесты с использованием фреймворка unittest в Python.
5. Тестирует новый код на —
6. Итеративно выполняет отладку кода для вас, используя контекст из журналов, сообщений об ошибках, соответствующих файлов и структуры каталогов.
Подробнее👇
#статьи
Как работает GPT-Migrate
Для переноса кода из
--sourcelang в --targetlang:1. GPT-Migrate создает среду Docker для —
targetlang, которая автоматически.2. GPT-Migrate перестраивает новый —
targetlang код из существующего кода, начиная с файла —sourceentry. 3. Инструмент запускает среду Docker с новой кодовой базой, которая отображается на —
targetport, и по мере необходимости итеративно выполняет отладку.4. ИИ разрабатывает модульные тесты с использованием фреймворка unittest в Python.
5. Тестирует новый код на —
targetport с использованием этих модульных тестов.6. Итеративно выполняет отладку кода для вас, используя контекст из журналов, сообщений об ошибках, соответствующих файлов и структуры каталогов.
Подробнее👇
#статьи
👍7❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Игра шарик
Давайте закодим что-нибудь интересное! Например, свою игру, где нужно не дать шарику упасть, типа Арканоида. Вы, скорее всего, играли в детстве во что-то подобное, поэтому освоиться будет просто.
#sandbox
@python_practics
Давайте закодим что-нибудь интересное! Например, свою игру, где нужно не дать шарику упасть, типа Арканоида. Вы, скорее всего, играли в детстве во что-то подобное, поэтому освоиться будет просто.
#sandbox
@python_practics
👍11
Упрощение создания операторов сравнения
Существует немало операторов сравнения. Например —
Можно ли как-то упростить этот процесс? Да — с помощь декоратора
@python_practics
Существует немало операторов сравнения. Например —
__lt__, __le__, __gt__, __ge__. Можно ли как-то упростить этот процесс? Да — с помощь декоратора
functools.total_ordering
#полезные_сниппеты@python_practics
👍10
Топ самых полезных магических команд для завсегдатаев Colab
Если вы пользуетесь на повседневной основе средами вроде Google Colab или Jupyter Notebook, то наверняка хотя бы раз сталкивались с «магическими» командами. В статье автор не только перечисляет самые полезные из них, но и показывает, как они работают на примерах, а также дополняет фишечками.
Подробнее👇
#статьи
Если вы пользуетесь на повседневной основе средами вроде Google Colab или Jupyter Notebook, то наверняка хотя бы раз сталкивались с «магическими» командами. В статье автор не только перечисляет самые полезные из них, но и показывает, как они работают на примерах, а также дополняет фишечками.
%lsmagic - Чтобы не тратить драгоценный умственный ресурс, запомните всего одну директиву – вывести список всех команд. %%time - Измеряет время выполнения ячейки. %%capture - Cкрывает выходные данные ячейки. %autoawait - Позволяет использовать параллельные процессы.%debug - Активируeт интерактивный отладчик. %pip - Множество сторонних библиотек подключается к проекту именно этой командой. %precision - Указывает число знаков после запятой (decimal number) для числовых объектов.%rerun - Перезапускает предыдущую ячейку.%%html - Отрендерит ячейку как код HTML. Подробнее👇
#статьи
👍7
Внимание! - Вопрос!
Что может являться ключом словаря? Что не может? Почему?
Ключом словаря может быть любой хешируемый неизменяемый объект: число, строка, datetime, функция и даже модуль. Такие объекты имеют метод __hash__(), который однозначно сопоставляет объект с некоторым числом. По этому числу словарь ищет значение для ключа.
Списки, словари и множества изменяемы и не имеют метода хеширования. При подстановке их в словарь возникнет ошибка.
Хеш кортежа вычисляется рекурсивно по всем элементам.
Так, кортеж
(1, (True, (42, ('hello', )))) состоит только из неизменяемых элементов, поэтому может быть ключом.
Однако, такой кортеж
(1, (True, (42, ({'hello': 'world'}, )))) содержит глубоко внутри словарь, поэтому хеш не может быть рассчитан.
#вопросы_из_собеседований
@python_practics
Что может являться ключом словаря? Что не может? Почему?
Списки, словари и множества изменяемы и не имеют метода хеширования. При подстановке их в словарь возникнет ошибка.
Хеш кортежа вычисляется рекурсивно по всем элементам.
Так, кортеж
(1, (True, (42, ('hello', ))))
Однако, такой кортеж
(1, (True, (42, ({'hello': 'world'}, )))) содержит глубоко внутри словарь, поэтому хеш не может быть рассчитан.
@python_practics
🔥11👍7❤1
Ваша задача — создать функцию, которая выполняет четыре основные математические операции.
Функция должна принимать три аргумента - операция(строка/символ), значение1(число), значение2(число).
Функция должна возвращать числовой результат после применения выбранной операции.
Примеры:
@python_practics
Функция должна принимать три аргумента - операция(строка/символ), значение1(число), значение2(число).
Функция должна возвращать числовой результат после применения выбранной операции.
Примеры:
('+', 4, 7) --> 11
('-', 15, 18) --> -3
('*', 5, 5) --> 25
('/', 49, 7) --> 7
#задачник@python_practics
🥱16👍4❤1