Декораторы в Python
Декораторы — мощный инструмент в Python. Вы можете их использовать для тонкой настройки работы класса или функции. Декораторы можно считать функцией, которая применена к другой функции. Чтобы определить функцию-декоратор для декорируемой функции, используется знак @ и после него название функции. Из этого следует, что декоратор принимает в качестве аргумента функцию, которою он декорирует.
Рассмотрим функцию square_decorator(), которая в качестве аргумента принимает функцию и в результате также выдают функцию.
Разъяснивший Python
Декораторы — мощный инструмент в Python. Вы можете их использовать для тонкой настройки работы класса или функции. Декораторы можно считать функцией, которая применена к другой функции. Чтобы определить функцию-декоратор для декорируемой функции, используется знак @ и после него название функции. Из этого следует, что декоратор принимает в качестве аргумента функцию, которою он декорирует.
Рассмотрим функцию square_decorator(), которая в качестве аргумента принимает функцию и в результате также выдают функцию.
Разъяснивший Python
Контекст функций
Язык Python допускает применение вложенных функций, в которых вы можете определить внутреннюю функцию внутри внешней. В Python есть несколько замечательных свойств, связанных со вложенными функциями.
Разъяснивший Python
Язык Python допускает применение вложенных функций, в которых вы можете определить внутреннюю функцию внутри внешней. В Python есть несколько замечательных свойств, связанных со вложенными функциями.
Разъяснивший Python
Превращаем Python в кейлоггер за 5 строк!
Этот код предназначен только для образовательных целей! Не используйте его в незаконных целях.
Как это работает?
pynput.keyboard.Listener перехватывает нажатия клавиш.
log_key(key) записывает все нажатия в файл log.txt.
listener.join() запускает бесконечное слежение за клавиатурой.
Где это можно использовать?
Контроль собственных действий (например, восстановление случайно закрытого текста).
Создание горячих клавиш для своих приложений.
Отладка нажатий при тестировании программ.
Разъяснивший Python
Этот код предназначен только для образовательных целей! Не используйте его в незаконных целях.
Как это работает?
pynput.keyboard.Listener перехватывает нажатия клавиш.
log_key(key) записывает все нажатия в файл log.txt.
listener.join() запускает бесконечное слежение за клавиатурой.
Где это можно использовать?
Контроль собственных действий (например, восстановление случайно закрытого текста).
Создание горячих клавиш для своих приложений.
Отладка нажатий при тестировании программ.
Разъяснивший Python
Возвращение легенды: самый востребованный вебинар Зерокодера про Perplexity AI снова пройдёт в ноябре.
На бесплатном занятии ребята покажут, как:
– Собрать презентацию, визуал, игру и текст с помощью Perplexity;
– Экономить ресурсы, заменяя целую команду инструментов всего одним ИИ;
– Получать идеи для монетизации ИИ прямо в процессе работы;
– Настроить рабочие процессы с помощью Perplexity так, чтобы он реально ускорял решение задач.
Все участники получат готовый гайд с набором промптов, который сделает вашу работу и повседневные задачи проще и интереснее.
Бонус: в конце практикума расскажем, как получить годовую подписку Perplexity Pro бесплатно (обычная стоимость — $240).
P.S. Это специальный повтор вебинара от экспертов по Perplexity. Жмите на ссылку и успевайте зарегистрироваться!
На бесплатном занятии ребята покажут, как:
– Собрать презентацию, визуал, игру и текст с помощью Perplexity;
– Экономить ресурсы, заменяя целую команду инструментов всего одним ИИ;
– Получать идеи для монетизации ИИ прямо в процессе работы;
– Настроить рабочие процессы с помощью Perplexity так, чтобы он реально ускорял решение задач.
Все участники получат готовый гайд с набором промптов, который сделает вашу работу и повседневные задачи проще и интереснее.
Бонус: в конце практикума расскажем, как получить годовую подписку Perplexity Pro бесплатно (обычная стоимость — $240).
P.S. Это специальный повтор вебинара от экспертов по Perplexity. Жмите на ссылку и успевайте зарегистрироваться!
Zip
Функция zip() позволяет создавать итерируемый объект, состоящий из кортежей. Zip принимает в качестве аргумента несколько последовательностей (m1, m2,…, mn), в результате чего создается итерируемый объект, состоящий из i кортежей. В каждом кортеже содержится по одному элементу из каждого контейнера. Таким образом, i-й кортеж представляет собой(m1i, m2i,…, mni)
Разъяснивший Python
Функция zip() позволяет создавать итерируемый объект, состоящий из кортежей. Zip принимает в качестве аргумента несколько последовательностей (m1, m2,…, mn), в результате чего создается итерируемый объект, состоящий из i кортежей. В каждом кортеже содержится по одному элементу из каждого контейнера. Таким образом, i-й кортеж представляет собой(m1i, m2i,…, mni)
Разъяснивший Python
Enumerate
В традиционных языках программирования вам нужна переменная цикла для перебора различных значений контейнера. В Python это упростили: вы можете получить доступ к переменной цикла вместе со значением итерируемого объекта. Функция enumerate(x) возвращает две итерируемые переменные. Одна из них изменяется в диапазоне от 0 до len(x) - 1, а другая представляет собой элементы x.
Разъяснивший Python
В традиционных языках программирования вам нужна переменная цикла для перебора различных значений контейнера. В Python это упростили: вы можете получить доступ к переменной цикла вместе со значением итерируемого объекта. Функция enumerate(x) возвращает две итерируемые переменные. Одна из них изменяется в диапазоне от 0 до len(x) - 1, а другая представляет собой элементы x.
Разъяснивший Python
Как перевернуть список в Python с помощью срезов
Срезы работают аналогично функции range(), которую мы разобрали ранее.
Срез также включает в себе три параметра: start, stop и step.
Синтаксис выглядит следующим образом: [start:end:step].
Если вы хотите вывести все элементы, вы можете использовать один из двух следующих способов
Разъяснивший Python
Срезы работают аналогично функции range(), которую мы разобрали ранее.
Срез также включает в себе три параметра: start, stop и step.
Синтаксис выглядит следующим образом: [start:end:step].
Если вы хотите вывести все элементы, вы можете использовать один из двух следующих способов
Разъяснивший Python
Как формировать списки в Python
Чтобы создать новый список, сначала дайте ему имя. Затем добавьте оператор присваивания (=) и пару квадратных скобок. Внутри скобок добавьте значения, которые должны содержаться в списке.
Разъяснивший Python
Чтобы создать новый список, сначала дайте ему имя. Затем добавьте оператор присваивания (=) и пару квадратных скобок. Внутри скобок добавьте значения, которые должны содержаться в списке.
Разъяснивший Python
Регистрация функции с помощью декораторов в Python
Самый простой тип декоратора используется для регистрации функции в качестве обработчика события. Данный шаблон очень распространен в приложениях на Python, так как он позволяет двум или более подсистемам взаимодействовать, не зная ничего друг о друге. Данный процесс известен как «несвязанный» дизайн.
Разъяснивший Python
Самый простой тип декоратора используется для регистрации функции в качестве обработчика события. Данный шаблон очень распространен в приложениях на Python, так как он позволяет двум или более подсистемам взаимодействовать, не зная ничего друг о друге. Данный процесс известен как «несвязанный» дизайн.
Разъяснивший Python
Пример элементарных декораторов в Python
Прежде чем мы углубимся в новую территорию, давайте рассмотрим, как работают простые декораторы из первого урока. Ниже представлен пример, введенный нами в оболочку IDLE Python. Попробуйте поэкспериментировать, запустите IDLE оболочку и введите код сами.
Разъяснивший Python
Прежде чем мы углубимся в новую территорию, давайте рассмотрим, как работают простые декораторы из первого урока. Ниже представлен пример, введенный нами в оболочку IDLE Python. Попробуйте поэкспериментировать, запустите IDLE оболочку и введите код сами.
Разъяснивший Python
Нужны ли декораторам аргументы?
Есть множество проблем, которые можно решить с помощью декораторов, и некоторые из них были рассмотрены в предыдущих уроках данного курса. Однако в некоторых ситуациях могут пригодиться и аргументы. Рассмотрим в качестве примера знаменитый декоратор app.route из веб-фреймворка Flask
Разъяснивший Python
Есть множество проблем, которые можно решить с помощью декораторов, и некоторые из них были рассмотрены в предыдущих уроках данного курса. Однако в некоторых ситуациях могут пригодиться и аргументы. Рассмотрим в качестве примера знаменитый декоратор app.route из веб-фреймворка Flask
Разъяснивший Python
inspect добро пожаловать за кулисы
Модуль inspect пригодится вам для использования того, что происходит за кулисами в Python. Вы так же можете вызывать его методы в них же!
Снизу пригодится метод inspect.getsource() для вывода его собственного исходного кода. Еще используется метод inspect.getmodule() для вывода модуля, в котором его утвердили.
Разъяснивший Python
Модуль inspect пригодится вам для использования того, что происходит за кулисами в Python. Вы так же можете вызывать его методы в них же!
Снизу пригодится метод inspect.getsource() для вывода его собственного исходного кода. Еще используется метод inspect.getmodule() для вывода модуля, в котором его утвердили.
Разъяснивший Python
pprint - Стандартная функция Python
Print() делает своё дело. Но если попытаться вывести большой вложенный объект, результат будет выглядеть не так уж и приятно.
Тут на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.
Разъяснивший Python
Print() делает своё дело. Но если попытаться вывести большой вложенный объект, результат будет выглядеть не так уж и приятно.
Тут на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.
Разъяснивший Python
Аннотации типов
Позволяет ускорить процесс разработки. Но, мало что раздражает так сильно, как ошибка времени выполнения, возникшая из-за простого несовпадения типа.
К тому же они позволяют использовать инструменты для проверки типов, чтобы отлавливать ошибки TypeError.
Разъяснивший Python
Позволяет ускорить процесс разработки. Но, мало что раздражает так сильно, как ошибка времени выполнения, возникшая из-за простого несовпадения типа.
К тому же они позволяют использовать инструменты для проверки типов, чтобы отлавливать ошибки TypeError.
Разъяснивший Python
PUT
Иногда нам часто приходится обновлять существующие данные в API. Используя запрос PUT, мы можем обновить данные полностью. Это означает, что, когда мы делаем запрос PUT, он заменяет все старые данные новыми.
В запросе POST мы создали новый продукт с идентификатором 21. Обновив старый продукт на новый, сделав запрос PUT к конечной точке products/<product_id>.
Разъяснивший Python
Иногда нам часто приходится обновлять существующие данные в API. Используя запрос PUT, мы можем обновить данные полностью. Это означает, что, когда мы делаем запрос PUT, он заменяет все старые данные новыми.
В запросе POST мы создали новый продукт с идентификатором 21. Обновив старый продукт на новый, сделав запрос PUT к конечной точке products/<product_id>.
Разъяснивший Python
Перегрузка операторов - о которых говорят все настоящие computer-scientis’ы
В Python есть поддержка перегрузки операторов — одной из тех штук.
На самом деле идея проста. Когда-нибудь задумывались, почему Python позволяет использовать оператор + как для сложения чисел, так и для конкатенации строк? За этим как раз и стоит перегрузка операторов.
Вы можете определять объекты, которые используют стандартные символы операторов любым образом. Это позволяет применять их в контексте объектов, с которыми вы работаете.
Разъяснивший Python
В Python есть поддержка перегрузки операторов — одной из тех штук.
На самом деле идея проста. Когда-нибудь задумывались, почему Python позволяет использовать оператор + как для сложения чисел, так и для конкатенации строк? За этим как раз и стоит перегрузка операторов.
Вы можете определять объекты, которые используют стандартные символы операторов любым образом. Это позволяет применять их в контексте объектов, с которыми вы работаете.
Разъяснивший Python
Транспонирование матрицы
В простейшем случае двумерная матрица может быть задана списком из нескольких списков одинаковой длины, которые представляют собой строки матрицы. Если вам требуется «повернуть на 90 градусов» такую матрицу или превратить строки в столбцы (транспонировать, как говорят математики)
Обратите внимание, что в итоговом списке элементами (то есть строками новой матрицы) будут кортежи — так работает используемая здесь функция zip ().
Разъяснивший Python
В простейшем случае двумерная матрица может быть задана списком из нескольких списков одинаковой длины, которые представляют собой строки матрицы. Если вам требуется «повернуть на 90 градусов» такую матрицу или превратить строки в столбцы (транспонировать, как говорят математики)
Обратите внимание, что в итоговом списке элементами (то есть строками новой матрицы) будут кортежи — так работает используемая здесь функция zip ().
Разъяснивший Python
POST - запрос
Для чего мы используем запрос POST? Для добавления новых данных в REST API. Все данные отправляются на сервер в формате JSON, который выглядит как словарь Python. Согласно документации Fake Store API, у продукта есть следующие атрибуты: noscript, price, denoscription, image и category.
Разъяснивший Python
Для чего мы используем запрос POST? Для добавления новых данных в REST API. Все данные отправляются на сервер в формате JSON, который выглядит как словарь Python. Согласно документации Fake Store API, у продукта есть следующие атрибуты: noscript, price, denoscription, image и category.
Разъяснивший Python
Запрос DELETE
Вам нужно удалить ресурс из API? Вы можете использовать запрос DELETE. Здесь мы будем удалять товар с идентификатором, равным 21.
Разъяснивший Python
Вам нужно удалить ресурс из API? Вы можете использовать запрос DELETE. Здесь мы будем удалять товар с идентификатором, равным 21.
Разъяснивший Python
Генераторы в Python
Вместо выражения return генераторы возвращают значения путем многократного применения выражения yield. При каждом новом вызове функции возвращается следующее значение итерируемой последовательности.
Генератор может быть вызван через функцию next(). При каждом вызове next() возвращается следующее значение генератора.
Разъяснивший Python
Вместо выражения return генераторы возвращают значения путем многократного применения выражения yield. При каждом новом вызове функции возвращается следующее значение итерируемой последовательности.
Генератор может быть вызван через функцию next(). При каждом вызове next() возвращается следующее значение генератора.
Разъяснивший Python
❤1
Удобный вывод SQL-запросов прямо в консоль с форматированием
Когда вы работаете с SQLAlchemy, отладка запросов иногда превращается в хаос — SQL выводится без форматирования, читать трудно, ошибки искать ещё труднее. Python позволяет быстро превратить любой запрос в читабельный SQL с подставленными параметрами.
Итог:
Этот приём позволяет видеть SQL-запросы в чистом виде, как в DBeaver, и экономит массу времени при отладке и оптимизации.
Разъяснивший Python
Когда вы работаете с SQLAlchemy, отладка запросов иногда превращается в хаос — SQL выводится без форматирования, читать трудно, ошибки искать ещё труднее. Python позволяет быстро превратить любой запрос в читабельный SQL с подставленными параметрами.
Итог:
Этот приём позволяет видеть SQL-запросы в чистом виде, как в DBeaver, и экономит массу времени при отладке и оптимизации.
Разъяснивший Python