Вы прошли обучающий курс программирования на Python или прочли несколько книг для начинающих. Что дальше? Как подняться над базовым уровнем, превратиться в крутого разработчика?
«Python. Чистый код для продолжающих» — это не набор полезных советов и подсказок по написанию чистого кода. Вы узнаете о командной строке и других инструментах профессионального разработчика: средствах форматирования кода, статических анализаторах и контроле версий. Вы научитесь настраивать среду разработки, давать имена переменным и функциям, делающие код удобочитаемым, грамотно комментировать и документировать ПО, оценивать быстродействие программ и сложность алгоритмов, познакомитесь с ООП.
Такие навыки поднимут вашу ценность как программиста не только в Python, но и в любом другом языке.
Ни одна книга не заменит реального опыта работы и не превратит вас из новичка в профессионала. Но «Чистый код для продолжающих» проведет вас чуть дальше по этому пути: вы научитесь создавать чистый, грамотный, читабельный, легко отлаживаемый код, который можно будет назвать истинно питоническим.
Например, если создать метод __len__() или __repr__() для вашего класса, он будет автоматически вызываться при передаче объекта этого класса функциям len() или repr() соответственно. Такие методы описаны в официальной документации Python на https://docs.python.org/3/reference/datamodel.html.
Атрибут класса представляет собой переменную, которая принадлежит классу, а не объекту. Атрибуты класса создаются внутри класса, но вне любых методов, подобно тому как глобальные переменные создаются в файле .py, но за пределами любых функций.
Методы классов используются не так часто. Самый распространенный сценарий использования — определение альтернативных конструкторов, кроме __init__(). Например, что если функция-конструктор может получать либо строку с данными, необходимыми новому объекту, либо строку с именем файла, который содержит данные для нового объекта? Список параметров метода __init__() не должен быть длинным и запутанным. Вместо этого можно воспользоваться методом класса, возвращающим новый объект.