Автор оригинала: Pankaj Kumar.
Утверждения в Питоне
Давайте узнаем об обычном использованном тестировании и технике отладки, называемых утверждениями в Python. Мы узнаем, какие утверждения есть, почему они используются, когда они не используют их, а их синтаксис. Так что давайте начнем.
Что такое утверждения в Python?
Утверждения в Python являются заявлениями, которые используются для утверждения условия в программе. Они спроектированы таким образом, что если утвержденное условие оказывается ложным, программа не будет продолжаться.
Если утверждаемое условие неверно, утверждение поднимает AssertionError
Отказ У вас есть возможность отправить сообщение вместе с AssertionError
исключение.
Почему используются утверждения?
Актуальные утверждения используются программистом для тестирования и кода отладки во время цикла разработки и Уведомить программист любых ошибок это может присутствовать в коде.
Эти утверждения предназначены только для разработчика, так как утверждения Assert являются частью тестирования и отладки кода.
Таким образом, чтобы убедиться, что определенные условия выполняются до или после выполнения блоков, так что логические ошибки и исключения могут избегать позже в программе, мы используем утверждения.
Предналагаемое использование утверждения Assert заключается в том, что Состояние, которое вы пишете в заявлении, никогда не должен быть ложным Отказ Если условие оказывается ложным, он должен быть ошибка в программе, которая должна быть удалена.
Хорошим примером утверждений можно для обеспечения того, чтобы функцию, которая рассчитывает антиобродослуженный номер, всегда дает положительный результат, если это происходит иначе, то неисправность находится в логике функции, а не вход или любой другой внешний фактор
Когда не использовать утверждения?
Утверждения не должны обрабатывать ошибки времени выполнения.
Ошибки, такие как « файл не найден », « Недостаточно памяти/куча », « Соединение не установлено », и т. Д. Может быть обрабатываться и выпрямлена в остальном или значении Отказ
Эти заявления не являются ошибками, но просто существуют из-за некоторого внешнего фактора, который не встречается, и программа, вероятно, в порядке.
Потому что утверждения являются отладки инструкций, Если программа работает в оптимизированном режиме, то все утверждения игнорируются во время выполнения программы.
Для запуска программы в оптимизированном режиме мы используем флаг -O следующим образом:
python -O file_name.py
Это отключит отладку для кода, и все утверждения будут игнорироваться.
Таким образом, если какое-либо утверждение используется для проверки ввода или проблемы безопасности, то его проверка больше не существует в оптимизированном режиме, и что может привести к нежелательным ошибкам и охранным ламфам Отказ
E.G., если вы используете утверждения, чтобы утвердить, что пользователь является администратором, и дайте им привилегии администратора, то можно просто запустить код в оптимизированном режиме, и утверждение будет игнорировать, предоставляя всем привилегиям администратора пользователей.
Точно так же, если вы используете утверждения, чтобы убедиться, что возраст пользователя составляет более 18, то, если код работает в оптимизированном режиме, любой пользователь может обойти утверждение.
Всего идет сказать, что если условие является результатом ошибки в самой программе, то есть что-то не так в коде, а не в входе или внешних условиях, то утверждения используются для утверждения условия, чтобы Существование ошибки может быть установлено Отказ
Реализация утверждений в Python
Давайте возьмем несколько примеров, чтобы понять, как писать утверждения в Python.
Обратите внимание, что образцы кода являются очень основными примерами и служат только целью объяснения синтаксиса и работы заявления.
a = 12 b = int(input()) assert b != 0 print(a / b)
В приведенном выше коде мы утверждаем условие, которое B
не может быть нулевым, прежде чем перейти к следующему утверждению.
Давайте посмотрим на синтаксис перед выходом на выход.
Утверждение ключевого слова всегда должно сопровождаться выражением, которое приведет к истинному или ложному. У нас также есть возможность добавить сообщение, но мы увидим, что позже.
В приведенном выше случае, если вход ничего, кроме 0
выражение приведет к Правда
И вывод будет выглядеть так:
Вот, мы дали 5
в качестве ввода, и код бежал без проблем. Теперь давайте посмотрим, что произойдет, когда мы даем 0
Как вход:
Когда B
имеет значение 0
Состояние возвращает Ложь
и утверждение поднимает AssertionError
Отказ
Это похоже на любое другое исключение, и его можно обрабатывать в пункте попробовать, однако, все это поражает цель утверждений, поскольку они должны уведомить программист возможной ошибки в программе.
Добавьте сообщение к утверждению:
a = 12 b = int(input()) assert b != 0, "The input cannot be zero!" print(a / b)
Здесь снова мы утверждаем условие, что B
не может быть 0
И если условие неверно, утверждение даст AssertionError
вместе с сообщением.
Итак, чтобы дать сообщение наряду с исключением, нам нужно указать строку, содержащую сообщение после записи условия и отделение условия и сообщения с запятой.
Для ненулевого ввода вывод не будет иметь никаких изменений, но если вход – 0
Затем вывод будет выглядеть так:
Обратите внимание, что исключение сопровождается сообщением об ошибке, которое мы указали. Утверждение утверждения всегда должно иметь сообщение, чтобы понять, какое утверждение не удалось, если у вас есть несколько утверждений.
Заключение
В этом руководстве мы узнали, какие заявления Assert мы обсуждали, когда их использовать и когда их не использовать. Затем мы видели, как они написаны в Python и как они могут помочь с отладкой кода.
Я надеюсь, что вы узнали что-то и увидимся в другом руководстве.