Перед вами заготовка для класса MadCalculator. Класс пока не написан, но по docstring можно понять, что он будет делать: class MadCalculator: """Производит арифметические действия разной степени безумности.""" def sum_string(self, first_num, second_num): """Складывает аргументы как строки и возвращает число, сформированное из них. Если один из аргументов меньше нуля, эмоционально отказывается работать. """ ... def sum_args(self, *args): """Ожидает […]
Архив категории ‘Основы языка Python’
Библиотека Unittest в Python


Писать код с нуля или использовать существующую библиотеку? Тестировать код через assert — это здорово и весело, но такое тестирование не очень подходит для серьёзных проектов. Писать тесты с нуля, самостоятельно их отлаживать, создавать документацию или объяснять новым разработчикам, что и как устроено в ваших тестах — дорогое удовольствие. Намного удобнее работать с готовыми библиотеками для тестирования. […]
Test Driven Development (TDD) в Python


Написание тестов — это большая часть работы программиста. Высший пилотаж в этой области— спланировать модуль, написать для него тесты и только после этого писать код, соответствующий этим тестам. Такой подход можно встретить и в спортивном программировании. Организаторы дают участникам задания-тесты, а решение должно соответствовать этим тестам. Практика «сначала тесты, потом — код» называется Test Driven Development (TDD). […]
Python — аннотация типов. Модуль typing


Зачастую объекты Python могут принимать значения различных типов. Например, аргумент какой-нибудь функции может принимать и строки, и числа, а переменная может содержать число или None. В таких случаях для аннотирования типов данных применяют компоновщики. С помощью компоновщика можно указать для переменной несколько возможных типов данных. # Компоновщики импортируются из модуля typing from typing import <имя_компоновщика> <имя переменной>: […]
Python — Аннотация типов. Простые типы


Никто не застрахован от ошибок в коде. Иногда ценой этой ошибки будет просто нечитаемость кода, а иногда — разбившийся космический корабль. Без инструментов анализа нельзя быть уверенным, что всё работает правильно. Одна из возможных проблем — ошибка в типах данных.Python поддерживает динамическую типизацию. Это означает, что переменная может менять свой тип в зависимости от последнего присвоенного ей значения. […]
Установка Python и подготовка окружения


Пришло время подготовить компьютер. На это вам потребуется некоторое время — и оно будет потрачено не впустую: правильная подготовка сэкономит вам время и нервы. В этом уроке вы установите: пакетный менеджер: специальную программу, которая знает, где взять установщик той или иной программы и выполнит все необходимые действия по установке. Python: интерпретатор для языка программирования Git: […]
Python — наследование в ООП


Гибкость объектно-ориентированного программирования проявляется в наследовании. Так называют возможность на основе существующих классов создавать классы-наследники, изменяя свойства и методы родительских классов, и добавляя новые. Наследование организует иерархическую структуру проекта. Разработчик определяет классу-родителю основные свойства и методы, к которым можно обращаться в объектах любого из дочерних классов. Синтаксис наследования в Python выглядит так: # у класса может быть […]
Создание новых типов данных в Python


В Python каждая переменная — это объект какого-то класса.Напишите text = "Война и мир" — и будет создан объект text типа str (строка), обладающий всеми свойствами и методами, присущими классу str. Код a = 1 создаст объект a типа int: все его свойства и методы описаны в предустановленном классе int. Если требуется новый класс объектов — разработчик создаёт его: пишет перечень данных и методы для управления данными этого класса. Для […]
Python: Основы ООП


Для осознанной работы с Python нужно представлять себе, что такое объекты, классы и объектно-ориентированное программирование.Пусть переменная user хранит всю информацию о пользователе. Там должно быть много разнородных данных, например, имя, телефон, адрес. Всё это — свойства, определяющие конкретного пользователя.Дадим свойствам имена, и тогда в переменной user свойство name будет содержать имя пользователя, а phone — телефон. Теперь к этим свойствам можно обратиться через точечную нотацию: user.name и user.phone.Одинаковые структуры […]
Наследование классов в Python


В коде описан класс Point (точка на карте), у него есть свойства — широта и долгота, и метод distance(self, other) — это расстояние между двумя точками в километрах (параметр other должен получить другой объект Point). Создайте два класса-наследника класса Point: City(Point, name, population) описывает город, в конструктор передаются координаты города (объект класса Point), его название и численность населения. Mountain(Point, name, […]