#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from Python Academy
Перегрузка операторов

Сначала стоит напомнить, что методы, которые начинаются и заканчиваются двойными нижними подчеркиваниями, называются магическими.

Например, выше в классе Point мы определили __str__, который отвечает за то, как выводятся объекты класса на экран.

Для перегрузки оператора "+" нужно определить метод __add__. Он принимает два аргумента, которыми являются, соответственно, операнды в операции сложения.

Таким образом, когда разработчик пишет запись p1 + p2, интерпретатор воспринимает это в виде Point.__add__(p1, p2). Для всех операторов в языке, включая и логические, есть свои магические методы.

#классы
Forwarded from Python Academy
Минималистичный ORM

Для любителей работать с базами данных SQLite 3 или MySQL наш подписчик разрабатывает простой и эффективный способ взаимодействия – библиотека mysqlite.

Такая компактная ORM является промежуточным этапом между работой со всеми знакомым SQLAlchemy и использованием чистого SQL у себя в коде.

Проект находится на ранней стадии разработки. Тем не менее, CRUD операции уже реализованы, а также присутствует несколько вспомогательных методов.

P. S. Присылайте свои проекты в личные сообщения @a1f20. Про самое интересное расскажем на канале.

#проектподписчика
Supercharged Python: Take Your Code to the Next Level (2019)
Авторы: Brian Overland, John Bennett
Количество страниц: 672

Книга написана для людей, которые знают основы Python и хотят поднять свои навыки на новый уровень. Автор рассказывает о способах, позволяющих писать более быстрый и мощный код, независимо от того, работаете ли вы с большими массивами данных или создаёте сложные приложения.

Скачать книгу
Forwarded from Python Academy
Удаление префиксов и суффиксов

По какой-то неизведанной причине многие разработчики посчитали эту фичу в обновлении 3.9 не очень интересной и попросту забыли. И зря.

Некоторые на полном серьезе для таких целей до сих пор пытаются использовать забагованные .strip и .lsrtip. Точнее, большинство просто не до конца понимают, как работают эти два метода.

И всё же, в Python 3.9 были добавлены методы для строк .removeprefix и .removesuffix, предназначенные специально для удаления префиксов и суффиксов в строках.

#строки
7 вопросов с собеседований по Python, на которые необходимо знать ответ.

https://proglib.io/w/95cd61c9
Forwarded from 🇻 🇱 🇦 🇩
Привет, прям такие митапы регулярные не знаю, но я думал в инете есть достаточно информации на этот счет
Forwarded from 🇻 🇱 🇦 🇩
Я давно вот эту книгу читал
Работа в хорошем редакторе способствует созданию здорового проекта, хорошие редакторы всячески помагают разработчику, а плохие либо не помагают , либо вовсе препятствуют разработке.

Вот лучшие редакторы для python-разработчиков по мнению опытных питонистов...🚀
1. PyCharm

2. Spyder

3. SublimeText

4. Jupyter

5. Atom

6. Python IDLE

7. VSCode

8. Wing

9. Thonny

10. PyDev

Приятный глазу UI в соответствии с сильной функциональностью является несущим звеном каждого успешного проекта.
Forwarded from Python Academy
Именованные кортежи

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

Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи namedtuple из collections.

Каждый объект в именованном кортеже может быть доступен через уникальный, удобный для чтения человеком, идентификатор. При этом вся функциональность от обычных кортежей сохраняется.

#namedtuple
Forwarded from Python Academy
Упрощение создания операторов сравнения

Для создания объектов с поддержкой операторов сравнения в классе обычно требуется реализовать большое количество магических методов, а именно – __lt__, __le__, __eq__, __ne__, __gt__, __ge__.

Про то, что делает каждый из них расскажем отдельным постом, но сейчас покажем, как можно сильно упростить реализацию подобного класса. Для этого можно использовать декоратор total_ordering из пакета functools.

В таком случае достаточно реализовать в классе только __lt__ и __eq__. Эти два метода являются минимумом, который нужен декоратору для конструирования остальных методов.

#классы
Forwarded from Python Academy
Первые шаги в Python

Специально для начинающих сделали универсальную подборку ресурсов для изучения Python с полного нуля.

Подборка включает в себя бесплатные онлайн-курсы, книги, YouTube каналы, сайты для практики и другое.

Читать 2 минуты

#статья
Forwarded from Python Academy
Перегрузка операторов сравнения

В случае, если вам в коде необходимо сравнивать объекты какого-либо класса, требуется реализовать магические методы, которые вызываются при сравнении.

Например, под капотом записи a < b вызывается a.__lt__(b). Для каждого оператора сравнения существует свой магический метод. Подробнее про то, какой метод за какой оператор отвечает, выше в коде.

Писать все шесть методов получается слегка громоздко, поэтому зачастую используют декоратор total_ordering из functools. Про него, кстати, недавно писали пост.

#классы
​​👉Использование кортежей в Python🐍

Кортеж - это упорядоченная и неизменяемая коллекция. В python кортежи записываются в круглые скобки.
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple)
#>>> ('apple', 'banana', 'cherry')

Доступ к элементам кортежа
Вы получаете доступ к элементам кортежа, ссылаясь на номер индекса в квадратных скобках
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple[1])
print (this_tuple[0])
print (this_tuple[2])

#>>>banana
#>>>apple
#>>>cherry

Отрицательная индексация

Отрицательная индексация означает начало с конца, -1 относится к последнему элементу, -2 относится ко второму последнему элементу и т. д.
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple[-1])
print (this_tuple[-2])
print (this_tuple[-3])

#>>>cherry
#>>>banana
#>>>apple

Диапазон индексов

Вы можете указать диапазон индексов, указав, где начать и где закончить диапазон.
При указании диапазона возвращаемое значение будет новым кортежем с указанными элементами.
Пример:
this_tuple = ("apple", "banana", "cherry", "mango")
print (this_tuple[1:3])
print (this_tuple[0:2])
print (this_tuple[0:1])

#>>('banana', 'cherry')
#>>>('apple', banana')
#>>>('apple')

Изменить значения кортежа

Как только кортеж создан, он не может изменить свои значения. Кортежи неизменяемы или являются immutable как это еще называется.
Но есть обходной путь. Вы можете преобразовать указатель в список, изменить список и преобразовать список обратно в кортеж.
Пример:
x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)
print (x)

#>>>('apple', 'kiwi', 'cherry')