Python Skills 🐍
303 subscribers
1.02K photos
17 videos
302 links
Канал полезного и юмористического контента на тему программирования, в частности такого языка как Python.

По всем вопросам: @andrey_andrey01
Download Telegram
👏5
🔥5
🔥3
👍4
👍4
Фрилансер:
🔥5
🤬5
😁5
😁4👍2
😁3
😁3🤔1
😁3
👍5
snowballstemmer - это очень полезная библиотека, если вам нужно реализовать эффективный поиск по сайту или файлам.
Библиотека позволяет достать основу слова для заданного исходного слова.

Причем поддерживаются разные языки.
В том числе русский и английский.
Крч Must Have для поиска 🔥

Ставится командой pip install snowballstemmer
Документация и примеры кода здесь.
👍2
Функция itertools.cycle

В пайтон есть классный модуль itertools для создания собственных итераторов. Функции данного модуля довольно эффективны в работе, поэтому их часто используют в реальных проектах.

Сегодня мы бы хотели показать вам функцию cycle() из itertools. Данная функция принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта. Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элементы.

К примеру, функция cycle() из последовательности ['red', 'white', 'blue'] генерирует повторяющуюся бесконечную. Но важно при проходе при итерации по такому итератору предусмотреть выход из цикла (а не как у нас в первом случае с colors:). Так как это итератор, то мы можем использовать его для получения значений через функцию next(colors).

Мы также можем воспользоваться islice(), который вернет итератор по подмножеству переданного объекта.

#генераторы #itertools
👍4
😁4
😁3
Геттеры и сеттеры

В объектно-ориентированных языках распространено использование геттеров и сеттеров для безопасной работы с приватными полями. Например, в C# для этого есть удобная конструкция { get; set; }.

В Python геттер реализуется через декоратор @property, а сеттер в виде @свойство.setter. В примере метод геттера называется age, поэтому декоратор сеттера – @age.setter.

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

#классы #property