Глубокое копирование (deep copy)
Глубокое копирование нужно для создания полной копии объекта, включая все вложенные объекты. Это важно для изменяемых объектов, таких как списки, чтобы изменения в копии не затрагивали оригинал.
Когда мы вызываем глубокое копирование, происходит следующее:
- Создается новый контейнерный объект (список, словарь и т. д.);
- Для каждого элемента исходного объекта рекурсивно вызывается глубокое копирование:
- Если элемент является изменяемым объектом (списком, словарем), то создается его копия с рекурсивным копированием вложенных элементов;
- Если элемент неизменяемый (число, строка) - он просто копируется как есть;
- Копии вложенных объектов вставляются в копию исходного объекта.
🔗 Python tricks
Глубокое копирование нужно для создания полной копии объекта, включая все вложенные объекты. Это важно для изменяемых объектов, таких как списки, чтобы изменения в копии не затрагивали оригинал.
Когда мы вызываем глубокое копирование, происходит следующее:
- Создается новый контейнерный объект (список, словарь и т. д.);
- Для каждого элемента исходного объекта рекурсивно вызывается глубокое копирование:
- Если элемент является изменяемым объектом (списком, словарем), то создается его копия с рекурсивным копированием вложенных элементов;
- Если элемент неизменяемый (число, строка) - он просто копируется как есть;
- Копии вложенных объектов вставляются в копию исходного объекта.
🔗 Python tricks
string.split
Метод split() разбивает строку по указанному разделителю и возвращает список подстрок. По умолчанию в качестве разделителя используется пробел. При необходимости ты можешь указать максимальное количество разделений.
🔗 Python tricks
Метод split() разбивает строку по указанному разделителю и возвращает список подстрок. По умолчанию в качестве разделителя используется пробел. При необходимости ты можешь указать максимальное количество разделений.
🔗 Python tricks
Виртуальные окружения
Скорее всего, вы работаете над несколькими проектами Python одновременно. К сожалению, иногда два проекта будут полагаться на разные версии одной и той же библиотеки. Какую из них вы установите себе?
К счастью, поддержка языком Python виртуальных сред позволяет вам получить нужное для обоих проектов. Напишем в командной строке
🔗 Python tricks
Скорее всего, вы работаете над несколькими проектами Python одновременно. К сожалению, иногда два проекта будут полагаться на разные версии одной и той же библиотеки. Какую из них вы установите себе?
К счастью, поддержка языком Python виртуальных сред позволяет вам получить нужное для обоих проектов. Напишем в командной строке
🔗 Python tricks
Блок for…else
Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.
В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
🔗 Python tricks
Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.
В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
🔗 Python tricks
Как рассчитать дату в будущем в Python
Давайте посчитаем, какая дата будет после промежутка time_delt1, который мы создали ранее.
Чтобы вычислить будущий момент времени, нам нужно только добавить диапазон, определенный объектом timedelta, к текущему времени.
🔗 Python tricks
Давайте посчитаем, какая дата будет после промежутка time_delt1, который мы создали ранее.
Чтобы вычислить будущий момент времени, нам нужно только добавить диапазон, определенный объектом timedelta, к текущему времени.
🔗 Python tricks
Оператор in
При использовании оператора in мы проверяем, содержится ли элемент в списке.
В этом примере мы проверяем, содержится ли в списке фруктов элемент 'apple' и 'grape'.
🔗 Python tricks
При использовании оператора in мы проверяем, содержится ли элемент в списке.
В этом примере мы проверяем, содержится ли в списке фруктов элемент 'apple' и 'grape'.
🔗 Python tricks
Что такое файлы .pth
Файлы с расширением .pth — это файлы, которые могут быть использованы для добавления директорий в путь поиска модулей Python. Директивы .pth выполняются при запуске интерпретатора Python и добавляют определенные каталоги в переменную sys.path.
Это удобно, когда нужно импортировать модули из нестандартных директорий без необходимости переноса файлов в директории по умолчанию.
🔗 Python tricks
Файлы с расширением .pth — это файлы, которые могут быть использованы для добавления директорий в путь поиска модулей Python. Директивы .pth выполняются при запуске интерпретатора Python и добавляют определенные каталоги в переменную sys.path.
Это удобно, когда нужно импортировать модули из нестандартных директорий без необходимости переноса файлов в директории по умолчанию.
🔗 Python tricks
Метода index()
При использовании метода index() мы находим индекс первого вхождения элемента в список.
В этом примере мы используем метод index() для нахождения индекса первого вхождения числа 2 в списке numbers.
🔗 Python tricks
При использовании метода index() мы находим индекс первого вхождения элемента в список.
В этом примере мы используем метод index() для нахождения индекса первого вхождения числа 2 в списке numbers.
🔗 Python tricks
✅ Планирование и автозапуск Python скриптов по времени
Вы можете посмотреть видео ниже, чтобы научиться планировать и запускать Python скрипты в определённое время.
• Перейти к просмотру
🔗 Python tricks
Вы можете посмотреть видео ниже, чтобы научиться планировать и запускать Python скрипты в определённое время.
• Перейти к просмотру
🔗 Python tricks
Замер времени выполнения куска кода с помощью модуля «timeit».
Модуль timeit позволяет замерить время выполнения любого куска кода.
Большие куски кода не очень удобно, но вот мелкие довольно хорошо. Закидываете вашу строчку внутрь timeit и вуаля.
🔗 Python tricks
Модуль timeit позволяет замерить время выполнения любого куска кода.
Большие куски кода не очень удобно, но вот мелкие довольно хорошо. Закидываете вашу строчку внутрь timeit и вуаля.
🔗 Python tricks
Функция enumerate()
При использование enumerate() мы получаем индекс и значение списка элементов в одном цикле.
Мы выводим индекс и значение каждого элемента списка фруктов.
🔗 Python tricks
При использование enumerate() мы получаем индекс и значение списка элементов в одном цикле.
Мы выводим индекс и значение каждого элемента списка фруктов.
🔗 Python tricks
Функция sorted()
При использование функции sorted() мы сортируем список элементов в порядке возрастания или исчезновения.
В этом понимании мы сортируем список чисел по возрастанию и выводим результат на экран.
🔗 Python tricks
При использование функции sorted() мы сортируем список элементов в порядке возрастания или исчезновения.
В этом понимании мы сортируем список чисел по возрастанию и выводим результат на экран.
🔗 Python tricks
Инициализатор init и финализатор del
Благодаря данному видео ты научишься добавлять в классы магические методы init для начальной инициализации создаваемых объектов и финализатор del для выполнения действий перед непосредственным удалением объекта из памяти.
👀Смотреть видео
🔗 Python tricks
Благодаря данному видео ты научишься добавлять в классы магические методы init для начальной инициализации создаваемых объектов и финализатор del для выполнения действий перед непосредственным удалением объекта из памяти.
👀Смотреть видео
🔗 Python tricks
Дано целое число, преобразовать его в римскую цифру.
В этом решении мы создаем метод intToRoman, который принимает целое число в качестве аргумента и возвращает его римское представление в виде строки.
Метод использует жадный алгоритм для поиска наибольшего римского числа, которое может быть вычтено из входного числа. Затем он вычитает это число и добавляет соответствующее римское число к результату.
Этот процесс повторяется до тех пор, пока входное число не станет равным нулю.
🔗 Python tricks
В этом решении мы создаем метод intToRoman, который принимает целое число в качестве аргумента и возвращает его римское представление в виде строки.
Метод использует жадный алгоритм для поиска наибольшего римского числа, которое может быть вычтено из входного числа. Затем он вычитает это число и добавляет соответствующее римское число к результату.
Этот процесс повторяется до тех пор, пока входное число не станет равным нулю.
🔗 Python tricks
Python Data Classes
Продолжаем делиться циклом видео, где автор рассказывает про классы данных. В этот раз демонстрируются параметры функции field(), метод post init(). Ты научишься объявлять параметры типа InitVar
• Перейти к просмотру
🔗 Python tricks
Продолжаем делиться циклом видео, где автор рассказывает про классы данных. В этот раз демонстрируются параметры функции field(), метод post init(). Ты научишься объявлять параметры типа InitVar
• Перейти к просмотру
🔗 Python tricks
YouTube
#38. Введение в Python Data Classes (часть 2) | Объектно-ориентированное программирование Python
Курс по Python ООП: https://stepik.org/a/116336
Параметры функции field(). Метод __post_init__(). Объявление параметров типа InitVar. Параметры декоратора dataclass.
Плейлист по Python ООП: https://www.youtube.com/playlist?list=PLA0M1Bcd0w8zPwP7t-FgwONhZOHt9rz9E…
Параметры функции field(). Метод __post_init__(). Объявление параметров типа InitVar. Параметры декоратора dataclass.
Плейлист по Python ООП: https://www.youtube.com/playlist?list=PLA0M1Bcd0w8zPwP7t-FgwONhZOHt9rz9E…
Решение проблемы «падения» процессов в приложении, работающего 24/7 в режиме мультипроцессинга
Вроде бы весь код отлажен, работа приложения стабильна, но в какие‑то моменты замечается, что «бах» и процесс пропал. Ни ошибки в логах, ни сигналов, ничего нет. И как ловить, не очень понятно, а работа стоит и надо как‑то запускаться.
🔗 Python tricks
Вроде бы весь код отлажен, работа приложения стабильна, но в какие‑то моменты замечается, что «бах» и процесс пропал. Ни ошибки в логах, ни сигналов, ничего нет. И как ловить, не очень понятно, а работа стоит и надо как‑то запускаться.
🔗 Python tricks
Метода split()
При использовании метода split() мы разбиваем строку на список элементов, используя заданный разделитель.
В этом примере мы используем метод split() для разбиения строки sentence на список слов.
🔗 Python tricks
При использовании метода split() мы разбиваем строку на список элементов, используя заданный разделитель.
В этом примере мы используем метод split() для разбиения строки sentence на список слов.
🔗 Python tricks
Plumbum
Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д.
Основные возможности библиотеки:
— Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции.
— Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных,
— Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных.
— Проверка кодов возврата и обработка ошибок.
— Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
🔗 Python tricks
Plumbum
— это библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ. Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д.
Основные возможности библиотеки:
— Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции.
— Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных,
Plumbum
сам сформирует командную строку.— Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных.
— Проверка кодов возврата и обработка ошибок.
— Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
🔗 Python tricks