Python академия
7.69K subscribers
2.42K photos
5 videos
271 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Хэширование

Для создания хэш-значений в python существует удобный модуль hashlib, реализующий общий интерфейс для ряда популярных хэш функций и также может использовать функции доступные в системе, предоставляемые с установленным OpenSSL.

Использование очень простое, в модуле существует ряд конструкторов, соответствующих названиям хэш-функций. В конструктор мы можем передать байт-строку, хэш которой мы хотим получить, на выходе мы получим объект хэша. Объект хэша мы можем обновить методом update, сконкатенировав тем самым строки, а также можем можем вывести полученное значение с помощью методов digest и hexdigest. Первый возвращает байт-строку, второй - в шестнадцатеричном формате.

Подписывайтесь на канал 👉@pythonofff
👍1
Упрощение создания операторов сравнения

Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.

Подписывайтесь на канал 👉@pythonofff
👍2
Нижнее подчеркивание

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

Первое, _ используется, когда вам нужно придумать имена для значений, которые вам не нужны — например, в циклах for.

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

Третье, документация модуля gettext рекомендует псевдоним _() для функции gettext(), чтобы минимизировать загромождение вашего кода.

Подписывайтесь на канал 👉@pythonofff
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Операторы сравнения

Существует немало операторов сравнения. Например — lt, le, gt, ge. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering

Подписывайтесь на канал 👉@pythonofff
Please open Telegram to view this post
VIEW IN TELEGRAM
Имитация

В вышеприведённом примере экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.

Подписывайтесь на канал 👉@pythonofff
1👍1
🚫👩‍💻 🚫 Как не нужно писать на Python

Приглашаем на открытый урок.

🗓 27 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса
«Python Developer. Professional».

Даже опытные разработчики порой создают код, который работает — но жить с ним потом невозможно. На открытом уроке разберём типичные ошибки и антипаттерны в Python, поговорим о причинах появления «плохого» кода и способах сделать его понятнее, стабильнее и быстрее. Рассмотрим как распространённые, так и неожиданные примеры, которые помогут взглянуть на привычные решения под новым углом.

На вебинаре разберём:
✔️ Основные антипаттерны и неудачные практики в Python-разработке
✔️ Почему появляются «плохие» решения и как их вовремя распознать
✔️ Подходы и инструменты, которые помогают улучшить качество кода

В результате вебинара вы:
✔️Поймёте, чего стоит избегать при написании кода на Python
✔️Научитесь видеть и исправлять проблемные участки в своих проектах
✔️Узнаете, как писать читаемый, поддерживаемый и эффективный код

🔗 Ссылка на регистрацию: https://vk.cc/cQyCrI

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM