Найти в Дзене
Контекстные менеджеры в Python
Контекстные менеджеры в Python - это объекты, которые позволяют управлять контекстом выполнения блока кода. Они используются с оператором with и имеют два специальных метода: __enter__ и __exit__. Метод __enter__ вызывается при входе в блок with и может возвращать значение, которое присваивается переменной после ключевого слова as. Метод __exit__ вызывается при выходе из блока with и получает три аргумента: тип исключения, само исключение и трассировку стека. Пример использования контекстного менеджера...
2 года назад
Конструкция yield from в Python
Введение Конструкция yield from используется для делегирования работы другому генератору. Она позволяет «вкладывать» один генератор в другой, то есть создавать субгенераторы. Это позволяет упростить код и избежать лишних циклов. Сравнение for + yield с yield from В самом простом случае, выражение yield from iterable - это просто сокращенная форма for item in iterable: yield item. Пример: Использование yield from с range Еще один пример использования yield from: Обход узлов бинарного дерева Конструкция yield from также может оказаться полезной при обходе узлов бинарного дерева...
294 читали · 2 года назад
Использование memoryview в Python
Класс memoryview в Python позволяет получать прямой доступ к внутренним данным объекта, который поддерживает протокол буфера обмена, без копирования. Это может быть полезно для работы с большими массивами данных или бинарными файлами. Пример 1. Байтовый массив Пример использования класса memoryview с байтовым массивом: Пример 2. Срезы Вы также можете использовать срезы при работе с memoryview. Для того, чтобы создать срез из объекта memoryview, вам сначала потребуется создать объект memoryview, который охватывает весь исходный массив...
2 года назад
Что такое ACID?
ACID - это набор из четырех требований к транзакционной системе, обеспечивающих максимально надежную и предсказуемую работу. Не все базы данных полностью реализуют ACID. Атомарность (atomicity) Атомарность гарантирует, что каждая транзакция будет выполнена полностью или не будет выполнена совсем. Не допускаются промежуточные состояния. Например, если вы переводите деньги с одного счета на другой, то атомарность гарантирует, что либо оба счета будут изменены соответственно, либо ни один из них не будет изменен...
2 года назад
Итераторы и генераторы в Python
Итератор Итератор - это объект, который поддерживает протокол итератора, то есть имеет методы iter() и next(). Метод iter() возвращает сам итератор, а метод next() возвращает следующее значение из последовательности или вызывает исключение StopIteration, если значения закончились. Итератор можно использовать в цикле for или с функцией next(). Примеры контейнеров, которые поддерживают протокол итератора: списки (list), строки (str), словари (dict), множества (set), файлы (file) и другие. Пример класса,...
182 читали · 2 года назад
Модули и пакеты в Python
Введение Python - мощный язык программирования с широким спектром возможностей. Одной из ключевых особенностей языка является его модульность. Модули и пакеты позволяют разработчикам организовывать свой код и повторно использовать его в разных проектах. Модули. Определение Модули в Python - это файлы с расширением .py. Они могут содержать определения функций, классов и переменных. Пакеты. Определение Пакет в Python - это способ организации нескольких модулей в единую структуру. Пакет представляет собой каталог с файлом __init__...
2 года назад
Готовимся к собеседованию: "Что такое Boxing и Unboxing" ?
Давайте разберем один из довольно популярных вопросов на собеседовании на позицию C# Software Engineer: "Что такое Boxing и Unboxing" ? Boxing Boxing или упаковка представляет собой неявный процесс преобразования Value type или типа значения, т.е. значения хранящегося на стеке в тип object. Когда Value type упаковывается средой CLR, она создает обёртку значения внутри System.Object и сохраняет ее в управляемой куче. Unboxing Обратная операция распаковки, Unboxing, осуществляется явным преобразованием System...
267 читали · 3 года назад
C#. Готовимся к собеседованию: "Модификаторы доступа".
Введение Довольно часто, на собеседовании, на позицию C# Software Engineer, вас могут попросить рассказать о том, какие модификаторы доступа существует в языке программирования C#, а также какие ограничения они накладывают. В статье даются ответы на следующие вопросы: 1. Какие модификаторы доступа вы знаете? 2. Какие ограничения накладывает определенный модификатор на область видимости? 2.1. Модификатор private Приватный компонент доступен только в рамках своего класса или структуры. 2.2. Модификатор...
3 года назад
Готовимся к собеседованию: Big Design Up Front, Avoid Premature Optimization, Бритва Оккама
Введение Наверняка каждый из вас слышал про такие принципы разработки и проектирования как YAGNI, DRY или KISS. Однако, на собеседовании, на позицию Software Engineer, вас могут попросить рассказать о каких еще принципах разработки / проектирования вы слышали. В данной статье приводятся краткие определения еще трех принципов: Big Design Up Front, Avoid Premature Optimization и Бритва Оккама, которых должно быть достаточно для ответа человеку, который вас будет собеседовать. Big Design Up Front Глобальное...
3 года назад
Ответы на собеседовании: YAGNI, DRY, KISS
Введение На собеседовании на позицию Software Engineer вас могут попросить дать определения таким известным принципам как YAGNI, DRY или KISS. В статье приводятся их краткие определения, которых должно быть достаточно для ответа человеку, который вас будет собеседовать. YAGNI You Aren’t Gonna Need It / Вам это не понадобится Если вы пишете код, то будьте уверены, что он вам понадобится. Не пишите код, если думаете, что он пригодится позже. Этот принцип применим, например, при рефакторинге. Если вы...
3 года назад
Ответы на собеседовании: Основные принципы ООП
Введение В данной статье рассматривается один из общих вопросов, который вам могут задать на собеседовании на должность Software Engineer. Сам вопрос звучит так: "Назовите основные принципы ООП и дайте их краткое определение". Основные принципы ООП Обычно выделяют 4 основных принципа ООП, однако, не будет ошибкой, если вы также упомяните композицию и агрегирование. 1. Наследование Наследование – это многократное использование кода, как правило, реализуемое с помощью подклассов. Благодаря наследованию, один класс может унаследовать функциональность другого класса...
218 читали · 3 года назад
Знакомимся со скрапингом сайтов. Ищем дешевые туры с помощью Python.
1. Введение Цель данной статьи - заинтересовать вас скрапингом сайтов, чтобы вы захотели прокачать себя в этом направлении и познакомить с библиотекой BeautifulSoup. Мы напишем небольшой скрипт, который будет заходить на сайт с турами для пляжного отдыха и искать самые дешевые из них. Весь код вы можете посмотреть на GitHub. 2. Прежде чем начать Создайте новый проект и файл main.py в используемой вами IDE или редакторе. Установите библиотеку beautifulsoup4: pip install beautifulsoup4 Основную информацию по этой библиотеке можно посмотреть тут...
222 читали · 6 лет назад