Взгляд на инструмент, который позволяет безболезненно устранять неполадки

Вы устали от постоянной борьбы с надоедливыми ошибками? Даже с функциями отладки, предоставляемыми популярными IDE, устранение малейших ошибок может занять драгоценное время.

Что, если бы я сказал вам, что вы можете лучше справляться с ошибками, активно выполняя проверки работоспособности при запуске вашей программы?

К счастью, Python предлагает оператор assert, который позволяет пользователям делать именно это.

Здесь мы даем обзор оператора assert в Python и объясняем, почему он полезен для скриптов Python.

Заявление об утверждении

Оператор assert придерживается следующей логики:

Если ‹выражение› ложно, поднять AssertionError

Другими словами, оператор assert — это однострочный оператор, который вызывает ошибку, если определенное условие не выполняется.

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

Синтаксис

Оператор assert придерживается следующего синтаксиса:

assert <expression>
assert <expression>, <error message>

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

В этом случае возникает ошибка AssertionError, поскольку переменная имеет отрицательное значение.

У пользователей также есть возможность добавить свое собственное сообщение об ошибке, которое будет отображаться, если возникнет ошибка AssertionError.

Это полезная функция, особенно если сценарий будет включать несколько утверждений. Сообщение даст пользователю больше информации о причине проблемы.

Преимущества

Хотя оператор assert не является обязательным включением в программу, он очень полезен.

Этот простой однострочный код может улучшить ваш опыт кодирования.

Вместо того, чтобы использовать пассивный подход к отладке программы, пользователи могут использовать оператор assert для проактивной проверки работоспособности, чтобы гарантировать выполнение необходимых условий.

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

Пример из реальной жизни

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

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

К сожалению, у моего CSV-файла были неправильные размеры, поэтому я получил 0 за свою первую заявку (к счастью, мне было разрешено 5 заявок).

Я допустил ошибку, потому что не проверял активно, соответствуют ли размеры файла требованиям, но я смог исправить это, добавив оператор assert в конец скрипта, чтобы выполнить проверку, чтобы убедиться, что сгенерированный файл CSV имеет те же размеры, что и в предоставленном образце CSV-файла.

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

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

Вот несколько других примеров проверок работоспособности, которые вы можете выполнить с помощью оператора assert:

  • Проверить, имеет ли переменная правильный тип данных
  • Проверить, находится ли число в определенном диапазоне
  • Проверьте, имеет ли входная матрица правильные размеры для нейронной сети.
  • Проверьте, есть ли в списке, наборе или словаре определенный элемент

Распространенные ошибки

На этом этапе стоит указать на две распространенные ошибки, совершаемые при проверке работоспособности.

1. Использование неотладочных инструментов для отладки.

Люди могут совершить ошибку, используя операторы if и предложения try/except для проверки работоспособности. К сожалению, эти инструменты не предназначены для отладки. Использование таких инструментов для такой цели неэффективно и неизбежно приведет к увеличению длины строк кода, что затруднит читаемость.

Надеемся, что эта статья привела веские доводы в пользу использования операторов assert для таких целей.

2. Использование утверждений для целей, не связанных с отладкой

Операторы Assert предназначены для отладки и должны использоваться только для отладки. Для таких приложений, как обработка ошибок, лучше полагаться на предложения try/except.

Заключение

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

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

Желаю вам удачи в ваших начинаниях в области науки о данных!