Python Community
13.1K subscribers
1.24K photos
26 videos
15 files
712 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Готовим объект к отправке на луну на сервер

Первым делом Python объект надо перевести в строку. Например, в JSON формат. Сделать это лучше всего с помощью marshmallow.

Установка: pip install marshmallow

Таким образом вам не нужно добавлять convert_to_json() в каждый класс, а достаточно просто настроить схему (Schema) с полями (fields) от marshmallow.

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

Но и не забываем про валидацию, с которой можно познакомиться в документации.

#миниурок #marshmallow
Что выведет код выше?
Anonymous Quiz
35%
1
22%
2
19%
3
14%
Ошибку
10%
Узнать ответ
⚡️ Правила документации кода

"""На этой строке обязательно должно быть краткое описание объекта. Кто он, что он делает и ради чего существует.

Вторая строка обязательно должна быть пустой. После неё идёт один или несколько абзацев более полного описания.
Вообще правила, описывающие документацию хранятся в PEP257.
"""

#теория
Что выведет код выше?
Anonymous Quiz
8%
3 4
27%
3 6
10%
2 3
41%
Ошибку
15%
Узнать ответ
⚡️ Модули это тоже объекты

Мы можем получать свойства даже у модулей. У них есть имя (__name__), документация (__doc__) и файл, в котором он находится (__file__).

Кстати, помимо обычного import мы так же можем получить доступ к модулю, используя importlib.import_module() или __import__().

#теория
⚡️ Какие планы?

Выложить пост через 10 минут? Или, может, отправить напоминание начать работать через час? В любом случае это не проблема с shed.

Модуль позволяет определять события, которые должны произойти через определённое время. К тому же он может работать в многопоточном режиме.

Об этих всех фишках подробнее рассказывают в документации.

#миниурок #shed
Что выведет код выше?
Anonymous Quiz
17%
Python world
35%
dython worlP
40%
Ошибку
7%
Узнать ответ
Что выведет этот код?
Anonymous Quiz
16%
1 2
7%
1
30%
2
41%
Ничего
6%
Узнать ответ
⚡️ Pattern matching в Python

Нововведение в Python 3.10. Является синтаксическим сахаром для большого количества if/else.

С его помощью мы можем определять поведение объекта на основе входящих данных. И при этом писать меньше кода.

Это switch/case, только возможностей в разы больше. Они все описаны в PEP 636.

#теория
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно проверить, является ли число простым. На вход идут числа от 2 до 10^20. Ваша задача — найти самое оптимальное решение.

Пример:

is_prime(2) ➞ True
is_prime(4) ➞ False
is_prime(1013) ➞ True

📌 Пишите ваше решение в комментариях. Решение будет через 2 часа на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Модуль collections

Это изменённые контейнеры (dict, list, set, tuple), которые могут сильно помочь при решении задач.

Counter(iter) — подсчитывает количество повторений объекта в iter. С помощью most_common(n) можно получить n самых повторяющихся объектов.

defaultdict(default_factory) — создаёт и подставляет новый объект, созданный default_factory, если не переданного ключа не существует.

namedtuple(typename, field_names) — Создаёт тип кортежа с именованными полями.

#миниурок #collections
Что выведет этот код?
Anonymous Quiz
25%
2
35%
3
26%
Ошибку
14%
Узнать ответ
⚡️ __getattr__ и __getattribute__

__getattribute__
вызывается каждый раз, когда мы пытаемся получить атрибут экземпляра. Даже если это произошло внутри класса с помощью self.

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

#теория