Подсказки типов | Ожидание типа | Type hinting (Python 3.5+) 2 часть
Динамические языки не заставляют Вас определять тип переменных перед тем, как их использовать.
Утиная типизация: «Если это выглядит как утка и крякает как утка, значит это утка».
Спор о том, какое типизирование python лучше — статическое или динамическое — не умолкают и по сей день и у каждого есть свое мнение на этот счет.
Это личное дело читателя — когда ему нужно вписывать типы, но мне кажется что вы как минимум должны знать о том, что Python 3 поддерживает подсказки типов.
Динамические языки не заставляют Вас определять тип переменных перед тем, как их использовать.
Утиная типизация: «Если это выглядит как утка и крякает как утка, значит это утка».
Спор о том, какое типизирование python лучше — статическое или динамическое — не умолкают и по сей день и у каждого есть свое мнение на этот счет.
Это личное дело читателя — когда ему нужно вписывать типы, но мне кажется что вы как минимум должны знать о том, что Python 3 поддерживает подсказки типов.
Пакетный менеджер pip
Для работы с пакетами в Python есть специальная утилита
Установить или удалить пакет можно через команды
Команды
А с помощью
#pip
Для работы с пакетами в Python есть специальная утилита
pip
— устанавливается она сразу вместе с интерпретатором.Установить или удалить пакет можно через команды
install
и uninstall
. После них нужно перечислить необходимые пакеты через пробел.Команды
list
и freeze
покажут все пакеты в текущем окружении, а также их версии. Обратите внимание на то, как выглядит вывод каждой из них.А с помощью
show
можно посмотреть информацию о конкретном пакете: название, версию, описание, автора, лицензию и другое.#pip
Удаление фона с помощью Rembg на Python
Библиотека Rembg предлагает готовое решение по удалению фона с изображений для разработчиков, которые не хотят возиться с графическими редакторами. Для работы библиотеки и распознавания фона используется Pytorch, а сам проект лежит в открытом доступе для всеобщего пользования.
Инструкция по использованию тут:
https://tprg.ru/L6fH
Библиотека Rembg предлагает готовое решение по удалению фона с изображений для разработчиков, которые не хотят возиться с графическими редакторами. Для работы библиотеки и распознавания фона используется Pytorch, а сам проект лежит в открытом доступе для всеобщего пользования.
Инструкция по использованию тут:
https://tprg.ru/L6fH
Что нужно для парсинга сайта?
Разберем некоторые аспекты парсинга сайтов.
Самое главное — базовые знания html, понимание работы сайтов в целом. Под каждую отдельную задачу пишется отдельный скрипт. Если сайт изменит свой дизайн, пишем новый алгоритм, старый не будет работать корректно.
Алгоритм
1. Изучаем структуру
2. Вычленяем нужные данные
3. Пишем алгоритм
4. Пишем интерфейс работы с алгоритмом
5. Упаковываем в приложение
Библиотеки
BeautifulSoup
Используем, когда с сайта нужна только конкретная информация. Никаких лишних движений, есть страница на ней информация. Для простых задач и как часть комплексных лучший выбор.
Selenium
Используем, когда пишем полноценный парсер с выбором данных, диапазоном и дополнительным функционалом. Отправка сообщений, вход в аккаунт, скачивание файлов, отправка различных запросов.
Использовать их можно в комплекте, Selenium делает действия на странице, BeautifulSoup ее анализирует.
Разберем некоторые аспекты парсинга сайтов.
Самое главное — базовые знания html, понимание работы сайтов в целом. Под каждую отдельную задачу пишется отдельный скрипт. Если сайт изменит свой дизайн, пишем новый алгоритм, старый не будет работать корректно.
Алгоритм
1. Изучаем структуру
2. Вычленяем нужные данные
3. Пишем алгоритм
4. Пишем интерфейс работы с алгоритмом
5. Упаковываем в приложение
Библиотеки
BeautifulSoup
Используем, когда с сайта нужна только конкретная информация. Никаких лишних движений, есть страница на ней информация. Для простых задач и как часть комплексных лучший выбор.
Selenium
Используем, когда пишем полноценный парсер с выбором данных, диапазоном и дополнительным функционалом. Отправка сообщений, вход в аккаунт, скачивание файлов, отправка различных запросов.
Использовать их можно в комплекте, Selenium делает действия на странице, BeautifulSoup ее анализирует.
Безопасный ввод и сохранение зашифрованных паролей в конфигах Linux: пишем скрипт на Python
https://habr.com/ru/company/macloud/blog/566748/
https://habr.com/ru/company/macloud/blog/566748/
Хабр
Безопасный ввод и сохранение зашифрованных паролей в конфигах Linux: пишем скрипт на Python
Как вывести свою систему на новый уровень безопасности с модулями python-gnupg и getpass4. Изображение : freeGraphicToday, via Pixabay. CC0. В условиях растущих требований к безопасности...
Работаем с атрибутами объектов
Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции:
По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В
На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
#классы #атрибуты
Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции:
getattr
, setattr
, delattr
и hasattr
.По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В
setattr
также нужно передать новое значение для атрибута.На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
#классы #атрибуты
Итерируемый счетчик
Еще один классный итератор из
В аргументах можно задать значения
Обычно
#itertools
Еще один классный итератор из
itertools
— это count
, который генерирует бесконечную последовательность чисел.В аргументах можно задать значения
start
и step
: первый отвечает за начальное значение, а второе за шаг, как и в range
.Обычно
count
редко используют с циклом for
. Чаще можно встретить случаи с функциями типа zip
или map
.#itertools
Укажите причинну неработоспособности данного кода.
Anonymous Poll
22%
Имя CONST - служебное, создаёт константу, поэтому данная переменная не может быть изменена.
11%
Атрибут __slots__ должен быть кортежем строк, а не строкой.
8%
Атрибут CONST может быть изменён только через метод __init__
14%
Код работает, проблем нет.
14%
Ни один из вариантов.
3%
В классе VerySafe отсутствует словарь __dict__, поэтому атрибут CONST доступен только для чтения.
28%
Узнать ответ
Хранение хеша и соли
Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.
Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.
Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.