Хэширование
Для создания хэш-значений в python существует удобный модуль hashlib, реализующий общий интерфейс для ряда популярных хэш функций и также может использовать функции доступные в системе, предоставляемые с установленным OpenSSL.
Использование очень простое, в модуле существует ряд конструкторов, соответствующих названиям хэш-функций. В конструктор мы можем передать байт-строку, хэш которой мы хотим получить, на выходе мы получим объект хэша. Объект хэша мы можем обновить методом update, сконкатенировав тем самым строки, а также можем можем вывести полученное значение с помощью методов digest и hexdigest. Первый возвращает байт-строку, второй - в шестнадцатеричном формате.
Подписывайтесь на канал 👉@pythonofff
Для создания хэш-значений в python существует удобный модуль hashlib, реализующий общий интерфейс для ряда популярных хэш функций и также может использовать функции доступные в системе, предоставляемые с установленным OpenSSL.
Использование очень простое, в модуле существует ряд конструкторов, соответствующих названиям хэш-функций. В конструктор мы можем передать байт-строку, хэш которой мы хотим получить, на выходе мы получим объект хэша. Объект хэша мы можем обновить методом update, сконкатенировав тем самым строки, а также можем можем вывести полученное значение с помощью методов digest и hexdigest. Первый возвращает байт-строку, второй - в шестнадцатеричном формате.
Подписывайтесь на канал 👉@pythonofff
👍1
Упрощение создания операторов сравнения
Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
Подписывайтесь на канал 👉@pythonofff
Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
Подписывайтесь на канал 👉@pythonofff
👍2
Нижнее подчеркивание
В Python имя переменной может состоять из одного подчеркивания. Хотя такое имя не достаточно описательно и не должно использоваться, есть по крайней мере три случая, когда _ имеет общепринятый смысл.
Первое, _ используется, когда вам нужно придумать имена для значений, которые вам не нужны — например, в циклах for.
Второе, интерактивный режим использует _ для хранения результата последнего выполненного выражения.
Третье, документация модуля gettext рекомендует псевдоним _() для функции gettext(), чтобы минимизировать загромождение вашего кода.
Подписывайтесь на канал 👉@pythonofff
В Python имя переменной может состоять из одного подчеркивания. Хотя такое имя не достаточно описательно и не должно использоваться, есть по крайней мере три случая, когда _ имеет общепринятый смысл.
Первое, _ используется, когда вам нужно придумать имена для значений, которые вам не нужны — например, в циклах for.
Второе, интерактивный режим использует _ для хранения результата последнего выполненного выражения.
Третье, документация модуля gettext рекомендует псевдоним _() для функции gettext(), чтобы минимизировать загромождение вашего кода.
Подписывайтесь на канал 👉@pythonofff
👍1
Операторы сравнения
Существует немало операторов сравнения. Например — lt, le, gt, ge. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering
Подписывайтесь на канал 👉@pythonofff
Существует немало операторов сравнения. Например — lt, le, gt, ge. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering
Подписывайтесь на канал 👉@pythonofff
Имитация
В вышеприведённом примере экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.
Подписывайтесь на канал 👉@pythonofff
В вышеприведённом примере экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.
Подписывайтесь на канал 👉@pythonofff
❤1👍1
🚫👩💻 🚫 Как не нужно писать на Python
Приглашаем на открытый урок.
🗓 27 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Python Developer. Professional».
Даже опытные разработчики порой создают код, который работает — но жить с ним потом невозможно. На открытом уроке разберём типичные ошибки и антипаттерны в Python, поговорим о причинах появления «плохого» кода и способах сделать его понятнее, стабильнее и быстрее. Рассмотрим как распространённые, так и неожиданные примеры, которые помогут взглянуть на привычные решения под новым углом.
На вебинаре разберём:
✔️ Основные антипаттерны и неудачные практики в Python-разработке
✔️ Почему появляются «плохие» решения и как их вовремя распознать
✔️ Подходы и инструменты, которые помогают улучшить качество кода
В результате вебинара вы:
✔️ Поймёте, чего стоит избегать при написании кода на Python
✔️ Научитесь видеть и исправлять проблемные участки в своих проектах
✔️ Узнаете, как писать читаемый, поддерживаемый и эффективный код
🔗 Ссылка на регистрацию: https://vk.cc/cQyCrI
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Приглашаем на открытый урок.
🗓 27 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Python Developer. Professional».
Даже опытные разработчики порой создают код, который работает — но жить с ним потом невозможно. На открытом уроке разберём типичные ошибки и антипаттерны в Python, поговорим о причинах появления «плохого» кода и способах сделать его понятнее, стабильнее и быстрее. Рассмотрим как распространённые, так и неожиданные примеры, которые помогут взглянуть на привычные решения под новым углом.
На вебинаре разберём:
В результате вебинара вы:
🔗 Ссылка на регистрацию: https://vk.cc/cQyCrI
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM