Python Learning
34K subscribers
1.93K photos
8 videos
7 files
934 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
➡️ Проверка необходимой версии Python

✔️ Чтобы ваши пользователи не могли запустить скрипт в несовместимой версии, в коде стоит проверить наличие актуальной версии Python. Проведите простую проверку.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆6👍4🍾1
⚙️ Декорируем функции

🗣️ Декоратор – это обертка вокруг функции, которая определенным образом изменяет ее поведение. Существуют варианты использования декораторов, и вы, возможно, уже применяли их раньше при работе с такими фреймворками, как Flask.

def print_argument(func):
def wrapper(the_number):
print("Argument for",
func.__name__,
"is", the_number)
return func(the_number)
return wrapper
@print_argument
def add_one(x):
return x + 1
print(add_one(1))


Внутри print_argument мы определяем функцию-обертку. Она выводит аргумент и имя вызываемой функции, выполняет фактическую функцию и возвращает ее результат, как если бы функция вызывалась «обычно».

➡️ С помощью @print_argument мы применяем наш декоратор к функции. Декоратор может быть повторно использован и для других функций.

Argument for add_one is 1
2


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🏆1🍾1
👀 Декоратор для автоматического кэширования результатов функций

Кэширование — это техника, которая позволяет значительно улучшить производительность, сохраняя результаты вызовов функций и возвращая кэшированные результаты для одинаковых входных данных.

✔️ В Python можно создать декоратор, который автоматически кэширует результаты функций.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🍾2🏆1
⚙️ Ленивая инициализация свойств с помощью дескрипторов

➡️ Дескрипторы в Python позволяют управлять доступом к атрибутам объекта.

🗣️ С их помощью можно реализовать ленивую инициализацию свойств, что особенно полезно для дорогостоящих операций, которые нужно выполнять только при первом обращении к свойству


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆6👍4🍾2
Что будет выведено при выполнении кода?

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Ответ:
Anonymous Quiz
10%
5 5
34%
10 5
42%
10 10
14%
5 10
🤔10🍾7👍6
Что будет выведено при выполнении кода?

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Декоратор для кэширования результатов функций с учетом аргументов

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

🗣️ Данный декоратор кэширует результаты функции в зависимости от переданных аргументов, что делает его гибким и эффективным.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔1🏆1🆒1
➡️ Использование генераторов для создания бесконечных последовательностей в Python

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

🗣️ Это мощный инструмент для работы с большими или даже бесконечными данными, поскольку генераторы экономят память и ресурсы. Один из интересных и необычных способов использования генераторов — создание бесконечных последовательностей.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😱1🏆1🍾1
➡️ Модификация байт-кода функции в Python с использованием модуля byteplay3

Продвинутые программисты могут использовать модификацию байт-кода для изменения поведения функции на низком уровне.

✔️ Это позволяет создавать динамические изменения в функции без её переписывания на уровне исходного кода. В Python можно использовать модуль byteplay3 для работы с байт-кодом.

🔗 Ссылочка на доку

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🏆1🍾1
⚙️ Управление временем выполнения функций с помощью тайм-аутов в Python

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

🗣️ В Python можно использовать модуль signal для установки тайм-аутов на выполнение кода.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🍾2😁1🏆1🗿1🆒1
➡️ Извлечение уникальных элементов из списка с сохранением порядка

🗣️ Обычно, когда нужно получить уникальные элементы из списка, используют set. Однако это нарушает порядок элементов.

Чтобы извлечь уникальные элементы, сохраняя их порядок, можно использовать следующую технику:

Используем список для обхода элементов и set, чтобы отслеживать уже встреченные элементы, избегая их дублирования.

Используем однострочный list comprehension с условием, которое добавляет элемент в результирующий список только если он ещё не был добавлен.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🏆2🍾1
➡️ Использование contextlib.contextmanager для создания контекстных менеджеров

Иногда бывает нужно создать собственный контекстный менеджер для управления ресурсами, такими как файлы или сетевые соединения.

✔️ В Python для этого можно использовать декоратор contextlib.contextmanager, что делает код простым и элегантным.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🏆1🍾1
➡️ Декоратор для измерения времени выполнения функции в Python

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

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

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

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🏆21🍾1
⚙️ Использование dataclasses для создания неизменяемых объектов

В Python 3.7 и выше можно использовать модуль dataclasses для создания простых классов данных.

🗣️ Одной из интересных возможностей является создание неизменяемых (immutable) объектов, которые не могут быть изменены после создания.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🏆1🍾1
Что будет выведено при выполнении кода?

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Ответ:
Anonymous Quiz
9%
5 5
25%
10 5
54%
10 10
12%
5 10
🤔8😢3🍾3👍2🗿1
➡️ Использование функции inspect для динамического анализа кода

В Python есть мощный модуль inspect, который позволяет проводить динамический анализ кода.

🗣️ С его помощью можно извлекать информацию о функциях, классах и их параметрах прямо во время выполнения программы. Это полезно для создания гибких и адаптивных систем.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6👍4💯1🏆1🍾1
⚙️ Работа с хэшируемыми типами данных через __hash__ и __eq__

В Python можно управлять тем, как объекты сравниваются и хэшируются, путем реализации методов __hash__ и __eq__.

🗣️ Это особенно полезно при использовании объектов в качестве ключей в словарях или элементов в множествах, где требуется уникальность.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🏆1🍾1