Программы
Моржовый оператор в Python3.8

Моржовый оператор в Python3.8

Вышла первая альфа версия Python 3.8 – самое время поглядеть, что нового добавили в язык!

В новой версии Python (3.8) разработчики планируют добавить новый оператор – "walrus operator". PEP по данному оператору можно поглядеть тут.

В общем виде его можно записать как

переменная := выражение

Однако, в отличии от операции присвоения (=), результат моржового оператора также является выражением и может быть использован для, например, сравнения:

if (match := pattern.search(data)) is not None:
    # Do something with match

То есть мы получаем результат поиска по регулярке и сразу проверяем, сматчилось ли. С обычным оператором присвоения мы бы получили syntax error.

Наконец-то можно будет писать C-style while-ы:

while chunk := file.read(8192):
    process(chunk)

И даже несколько странно выглядящие list comprehension:

filtered_data = [y for x in data if (y := f(x)) is not None]

И если первые два примера мне кажутся вполне логичными и напрашивающимися, то в 3-ем я начинаю чувствовать нарушение import this – философии питона. Новая возможность языка даёт новые возможности запутаться.

И можно сказать, что программисты должны думать о красоте и читаемости кода ("с большой силой приходит большая ответственность" и т.д.). Но, практика показывает, что многих устраивает, что их программа не падает с syntax error.

В любом случае, теоретизировать и обсуждать поздно – PEP принят и будет реализован в рамках Python 3.8. Что ж, ждём!

Ещё один пример
Также может быть вам интересно:

Как запустить программу в терминале в фоне, без вывода какого либо текста

Запускаем программу в терминале в фоновом режиме и разбираемся, как и почему это работает в Linux / Unix терминале.

Читать »

Как написать курсовую или дипломную работу

Написание курсовой может быть довольно скучным и муторным занятием. Но необходимым для обучения в ВУЗе. Так что давайте как-то минимизируем непонятности и нервотрёпку.

Читать »
Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

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

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

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

Фото Шаблон разработки ПО — Model View Controller (MVC)

Шаблон разработки ПО — Model View Controller (MVC)

MVC - один из самых распространённых архитектурных шаблонов разработки. Часто используется в различных фреймворках. В том числе и в Django.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если одни и те же данные нужны в разных местах, лучше сделать свой контекст-процессор.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

Если вашим сайтом должны активно пользоваться несколько человек, то полезно их различать, а значит - надо уметь создавать пользователей, либо предоставлять возможность регистрации Django пользователей.