Работа над ошибками

Неправильное использование метода __init__

Так же, как в C ++, в Python есть метод __ init__. Он автоматически вызывается, когда Python выделяет память для нового объекта класса. Целью данного метода является то, чтобы установить значения экземпляров класса. Возвращать явно значение из __ init__ – не очень хорошая практика. Это означает, что вы пытаетесь отклониться от цели этого метода и …

Импорт, ведущий к круговой зависимости

В Python инструкция import также является исполняемым оператором. Каждый вызов инструкции import приводит к выполнению соответствующего модуля. Кроме того, любая функция или класс из модуля модуле не может быть выполнена до тех пор, пока соответствующий код (в функции или классе) не будет запущен.

Неправильная проверка типов

Иногда для проверки типа данных в Python коде используется встроенная функция  type(). Вместо этого для проверки типов более корректно использовать isinstance(), особенно в том случае, когда проверяется тип экземпляра класса.

Возвращение несогласованных типов значений из функций.

При создании функции всегда нужно проверять, возвращает ли функция значения того типа, который ожидается. Если нет, нужно ввести дополнительное условие и сгенерировать исключения, а иначе тип возвращаемого значения придется проверять явно каждый раз перед его использованием. Нужно избегать написания такого кода, потому что это приводит приводит к путанице и увеличивает сложность. Рассмотрим примеры.

Недоиспользование блока исключений

В процессе обучения или адаптации к новому языку, мы предлагаем обратить внимание не только на основные, базовые моменты, но и на некоторые более «продвинутые» Нельзя упускать из виду исключения. Грамотное использование исключений позволяет сделать код рабочим даже в исключительных условиях.

Смешение пробелов и табуляций в Python

Согласно принципам PEP 8 в коде Python нужно использовать четыре пробела на каждый уровень отступа и не смешивать их с табуляциями. Это всего лишь одно из правил, которое не диктуется синтаксисом Python. Но тем не менее, ему нужно следовать, чтобы код был управляемым и не содержал ошибок.

Иррациональное использование антипаттернов в коде. Java-стиль

В общем случае, анти-паттерн представляет собой подход к разработке решения часто встречающихся задач, который в общем решает эти задачи, но с возможными побочными эффектами. Getter и setter в Java часто применяют для определения get/set функций для доступа к членам класса. Например, этот шаблон применяется в приложениях, использующих Java Hibernate Framework. В Python наоборот, такое использование …

Исключения и ошибки в Питоне

При программировании на любом языке, включая Python, работа с исключениями и ошибками часто становится необходимостью, когда вы имеете дело с большим количеством переменных. Иногда, вы просто не знаете, что окажется в вашем коде. Таким образом, вы планируете наперед и используете исключения и обработку ошибок в случае необходимости. Как правило, цель состоит в том, чтобы выполнить …

Идентичность как неверное понимание равенства

Еще одна распространенная ошибка – перепутать оператор равенства == и оператор идентичности is при сравнении целых чисел. Поскольку Python использует кэширование для целых чисел, об этой ошибке можно и не узнать.

Игнорирование правил областей видимости – LEGB правила

Если вы не знаете правил области видимости Python, то есть большая вероятность того, вы сделаете ошибку. Это потому, что Pytho использует немного другой подход к областям видимости, чем другие языки программирования. Например, он позволяет доступ к переменным, объявленная внутри цикла или в блоках if заявления извне. Это может немного дезориентировать программистов с опытом C …