Архив категории ‘Основы языка Python’

Unittest и TDD

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

Библиотека 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, […]