A
aboutpython
@aboutpython
12 posts

datetime - даты и время

К данному моменту мы изучили основные типы данных представленные в языке Python. Однако есть еще один тип данных, который довольно часто используется - это тип datetime, который представляет собой дату и время. У нас есть тип datetime, который представляет дату и время, как объединенные, есть тип date, который представляет дату, и есть тип time, который представляет время и тип timedelta, который представляет разницу между двумя датами. Давайте в кратце глянем, как представлен их программный интерфейс, и как ими пользоваться:

Реализуем Stack

Давайте сегодня разберемся, как можно строить итерируемые объекты. Задевали раньше тему Stack и очереди, попробуем сами сделать Stack. Будем использовать в качестве структуры данных обычный list, то есть список.

Отладка

Программистам не всегда удается написать программу с первого раза таким образом, чтобы в ней не было ошибок. Программисты постоянно борятся с ошибками. Чтобы отловить эти ошибки в больших программах мы используем процесс, который называется отладка. В наших маленьких скриптах для того, чтобы посмотреть на значения переменных мы просто вызывали функцию print, передавали ей значение и смотрели, что они выводят на консоль. И если у нас были бы ошибки, мы бы вызывали функцию print таким же образом, для того чтобы найти где у нас ошибка, какие переменные находятся не в том состоянии в котором нам нужно. И уже исходя из этого, из результатов вывода принимать какие-то решения и исправлять код. Продемонстрирую элементы отладки и отладочный...

Еще раз о __name__ и __main__

Хотелось бы еще раз обратить внимание на использование специальных символов с двумя подчеркиваниями __name__ и __main__.

Модули и пакеты

В Python можно создавать не только модули, но и пакеты.

PyPi и PiP

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

Магические методы

В начале 2020 года начнем с темы магических методов или Dunder методы. С помощью этих магических методов мы можем переопределять кое-какое поведение.

Абстрактный класс и модуль ABC

Сегодня мы еще раз затронем тему абстрактных классов. В прошлый раз, чтобы создать абстрактный класс от которого будут наследоваться другие классы и которые будут обязаны переопределять методы определенные в абстрактном классе мы использовали обычный класс и для того, чтобы запретить вызов методов в таком классе мы возбуждали ошибки с помощью ключевого слова raise. Но у нас есть и другая возможность объявлять абстрактные классы. Этот способ несколько более красивый и продвинутый, он операется на специальный модуль и декоратор, который предназначен для того, чтобы определять абстрактные классы. Этот модуль называется ABC, что означает - Abstract Base Class. Посмотрим, как мы можем им воспользоваться:

Миксины

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

Миксины

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