Полезные библиотеки: funcy - набор конструкций, которые упрощают код

Полезные библиотеки: funcy - набор конструкций, которые упрощают код

Есть ряд модулей, которые стоит ставить первыми. Этот набор у каждого свой. В моем наборе есть место для funcy. funcy - это набор мелких полезностей при работе с данными.

Например, можно создать бесконечный список, объединить список списков, объединение словарей, можно превращать вложенные структуры в плоские и наоборот.

Это не весь список возможностей - а ...

more ...

Синтаксис Python: оператор yield

При чтении чужого кода можно столкнутся с многими непонятными конструкциями. А сейчас хочу коротко осветить такую конструкцию как yield. Yield - это ключевое слово которое используется так же, как и слово return. Разница в том, что функция при этом начинает возвращать генератор вместо значения.

def generator():
    for i in (1, 2, 3):
        yield i
g = generator()
print(g)
<generator object generator ...
more ...

Синтаксис Python: with ... as

Конструкция with ... as используется для оборачивания выполнения блока инструкций менеджером контекста. Иногда это более удобная конструкция, чем try...except...finally.

Синтаксис конструкции with ... as:

"with" expression ["as" target] ("," expression ["as" target])* ":"
    suite

Теперь по порядку о том, что происходит при выполнении данного блока:

  • Выполняется выражение в конструкции with ... as.
  • Загружается специальный метод __exit__ для дальнейшего использования.
  • Выполняется метод __enter__. Если ...
more ...


Синтаксис Python: трехместное выражение if/else

Сегодня хочется упомянуть о непонятной на первый взгляд конструкции - тернарная условная операция, или по-русски - трехместное выражение if/else.

Представим, есть такой код:

if X:
    A = Y
else:
    A = Z

довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано выражение if/else:

A = Y if X else Z

В данной инструкции интерпретатор выполнит ...

more ...

Генераторы списков

Если вы использовали Python достаточно долго, вы должны были хотя бы слышать о понятии «list comprehensions». Это способ уместить цикл for, блок if и присваивание в одну строку.

Генератор списков - яркий пример «синтаксического сахара». То есть конструкции, без которой легко можно обойтись, но с ней намного лучше :) Генераторы списков, как это не странно, предназначены для удобной обработки списков, к которой ...

more ...