Kangaroo
413 subscribers
115 photos
61 files
421 links
Научно-техническое сообщество, публикуем и общаемся о программировании, математике и котиках...)

По всем вопросам @Lodhel

Группа вк
https://vk.com/kangarooteampy
Download Telegram
Магические методы в Python

Создание объекта dict, принимающего только целые и плавающие числа в качестве значений

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

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

Для реализации этого процесса используются следующие методы:

__int__, __setitem__ и __str__


Для начала создаем пользовательский класс CustomIntFloat и передаем dict в список наследования аргументов. Это означает, что созданный объект будет вести себя как словарь, за исключением тех мест, в которых это поведение будет выборочно изменено.

Затем создаем метод init, чтобы сконструировать объект dict CustomIntFloat, который принимает ключ и значение в список аргументов, установленный в тип None по умолчанию. Таким образом, если пользователь создает объект класса CustomIntFloat без передачи ключа или значения, будет сгенерирован пустой dict. Данное условие гласит: если ключ не передан, то параметру ключа по умолчанию присваивается аргумент None, а пустой dict создается путем ссылки на объект CustomIntFloat с атрибутом класса empty_dict.

Если пользователь указывает ключ length и соответствующее значение, которое является экземпляром класса int или float, то ключ и значение будут установлены в объекте.

Наконец, если пользователь указывает несколько ключей и значений в качестве итерируемых в операторе else, то они будут заархивированы функцией zip и им будет присвоено имя переменной zipped. Выполняем цикл на zipped, чтобы проверить, имеет ли значение тип int или float. Если нет, то будет сгенерировано пользовательское исключение CustomIntFloatError.

Класс исключения CustomIntFloatError и метод str

При генерации исключения CustomIntFloatError создается экземпляр класса CustomIntFloatError.

Таким образом, этот пользовательский класс исключений нуждается в помощи magic-методов init и str. Созданный экземпляр принимает переданное значение и устанавливает его в качестве значения атрибута в классе CustomIntFloatError.

Это означает, что при появлении сообщения об ошибке значение, переданное в init объекта CustomIntFloat, может быть установлено как атрибут (self.value) в классе CustomIntFloatError и с легкостью проверено.

Метод setitem

setitem — это magic-метод, который вызывается при установке ключа и значения в словаре. Если после создания объекта CustomIntFloat пользователь попытается добавить значение, которое не относится к типу int или float, появится то же исключение CustomIntFloatError.

Понравилась статья, есть желание подбросить монет?

Это возможно, для всего остального есть master card
5599005078807943

#kangaroo #it #python #science
С 2021 года GitHub меняет правила доступа к репозиториям Git — вместо паролей придётся вводить SSH-ключи или токены. Это касается операций с командной строкой, работой десктопных программ и браузерных сервисов, которые напрямую обращаются к Git через сайт GitHub.com.

Когда старт: 13 августа 2021 года. Тесты пройдут 30 июня и 28 июля — в эти дни появится трёхчасовое окно, когда вход в аккаунт возможен только с помощью нового способа аутентификации.

Обновить метод аутентификации: https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/set-up-git#next-steps-authenticating-with-github-from-git

Подробности: https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

#kangaroo #news #it
doc142751228_583209755.pdf
1.3 MB
Перевод статьи о Django и Django REST Framework, в которой разрабатывается простое веб-приложение для учета книг. Показан переход от обычных представлений, возвращающих HttpResponse, к JsonResponse и Django REST Framework для использования в дальнейшем библиотеки React.
#it #kangaroo #python
#django #react
Проверка типов в Python

Что такое проверка типов? Зачем это нужно? В чем разница между статической проверкой типов и проверкой типов во время выполнения?

https://testdriven.io/blog/python-type-checking/
Python может быть быстрее C++

Уловка, которая делает Python быстрее, чем вы можете себе представить.

https://medium.com/swlh/python-can-be-faster-than-c-2372c627068
Было ли интересно когда вел сообщество?
Anonymous Poll
95%
Да
5%
Нет
😢1
Уже в скором времени начну публиковать интересные и познавательные материалы. Тема, с которой начнем - это чистый код по принципам Роберта Мартина. Разберём принципы SOLID.
👍9🔥2
Channel photo updated
Channel name was changed to «PuzzleCore»
Как и обещал, начал цикл из серии SOLID. Разобрал первый принцип, принцип единой ответственности. Решил обновить канал новым названием и в скором времени, думаю обновлю логотип. Да и вы можете принять в этом участие, присылайте свои варианты для нового логотипа в личку. Итак, ссылка на тему принцип единой ответственности внизу. Приятного чтения уважаемые подписчики канала.

https://telegra.ph/Single-Responsibility-Principle---princip-edinoj-otvetstvennosti-07-05

#PuzzleCore #SOLID #IT #dev
👍12
Channel photo updated