Python AssertionError

Python Assertionerror



Quan un programa de Python troba una condició inesperada mentre s'executa, el programa atura l'execució i retorna una excepció. A Python, les excepcions i els errors de sintaxi són les dues categories principals d'errors. Quan un fragment de codi Python que és sintàcticament vàlid crea un error, es coneix com a generar una excepció/error. El missatge d'error de l'última línia defineix el tipus d'excepció precís i proporciona una descripció per ajudar a la depuració i una fletxa apunta a la línia o la ubicació on s'ha produït l'excepció. Captar i gestionar les excepcions és fonamental per evitar una fallada sobtada del programa. Utilitzeu una manera diferent d'executar el codi. Per exemple, quan es produeix l'excepció especificada. Aquest tutorial tractarà l'AssertionError i com podeu resoldre'l a Python.

Què és un AssertionError a Python?

Els errors d'afirmació són un concepte de programació que es produeix quan un programador escriu o crea un bloc de codi que s'utilitza per declarar un criteri o condició que s'ha de complir abans d'executar el mòdul. Com qualsevol error de Python, el control es transfereix a la línia de codi posterior si la condició especificada quan es va declarar certa l'afirmació. Si és fals, en canvi, es genera un error o una excepció i el programa s'atura. La declaració assert es pot utilitzar en diversos llenguatges de programació amb les seves sintaxis específiques perquè és independent del llenguatge. És una subclasse o una instància de la classe Exception. Python AssertionError té la sintaxi següent:

Sintaxi: assert condition, error_message (opcional)







Exemple

Introduirem l'edat d'una persona com a entrada i, si és inferior a zero, la consola generarà un error d'afirmació.





Ara bé, què passa si entrem en una edat inferior a 0 anys?





Depurar el codi amb aquest mètode és més senzill, de manera que és més fàcil trobar errors i corregir errors al programa.



Com funciona AssertionError a Python

El llenguatge Python inclou una declaració assert que es pot utilitzar per generar missatges d'error senzills amb afirmacions lògiques. Quan la declaració d'asserció falla, es genera una 'excepció' AssertionError. A Python, les classes d'excepció es deriven de la classe BaseException. La classe BaseException, que també és la classe base de la classe AssertionError, és d'on deriva la classe Exception. Sempre hi hauria d'haver un codi de gestió d'excepcions adequat per fer front a la fallada d'una declaració d'assert sempre que s'utilitzi una. El gestor d'excepcions predeterminat de Python imprimirà el missatge d'error escrit pel programador, però l'error també es pot gestionar o resoldre sense cap missatge d'error.

Implementació d'AssertionError a Python

A continuació es mostren diversos exemples d'AssertionError a Python:

Exemple

En aquest exemple, escriurem un programa Python per mostrar un AssertionError en un programa que trobi l'àrea d'un cercle.

El valor del radi 'r' es passa com a entrada a una funció del programa anterior que es crea per trobar l'àrea del cercle. La declaració assert s'utilitza llavors per determinar si el valor subministrat o el radi 'r' està per sota de zero, i si se li proporciona un valor negatiu, es plantejarà una excepció. L'àrea del cercle es retornarà en funció del valor de radi 'r' subministrat a la funció. Primer, la funció s'executa amb un valor de r com a 3. La funció s'executa després amb el valor 2,5. L'AssertionError es genera quan utilitzem un valor negatiu de 'r', és a dir, '-1'.

Provem un altre exemple per mostrar l'aparició d'un error d'asserció.

Exemple

En aquest exemple, el programa determinarà si el valor del denominador és diferent de zero.

El missatge d'error de l'error d'afirmació es mostra al programa anterior. Hem creat dues variables (a i b) i els valors enters especifiquen les variables. La segona variable, és a dir, b es prova llavors per veure si no és igual a 0 mitjançant la declaració assert. En cas contrari, s'imprimeix el missatge d'error. Si no, es mostra el resultat de dividir el primer nombre pel segon valor. A la imatge anterior, es mostra la sortida del programa.

Aplicacions d'AssertionError

Els altres usos beneficiosos de l'error d'afirmació inclouen:

  • L'asserció ajuda a avaluar els valors dels paràmetres
  • Les afirmacions ajuden a controlar el tipus d'entrada i si aquest valor és vàlid
  • A més, les afirmacions ajuden a identificar si un altre desenvolupador de codi fa un ús indegut d'una interfície
  • Les afirmacions ajuden a controlar contínuament la sortida del programa

Com podem evitar els errors d'afirmació a Python

  1. El senyalador -O en un programa Python es pot utilitzar per desactivar totes les declaracions d'asserció. És important tenir en compte que les declaracions que vénen després d'una declaració d'afirmació no s'executaran si desactivem les declaracions d'afirmació.
  2. La variable d'entorn també pot establir una marca per desactivar les declaracions d'asserció. Tots els processos i aplicacions que utilitzen o hereten l'entorn es veuen afectats en aquesta situació.
  3. A Python, l'enfocament més senzill per evitar errors d'afirmació és gestionar-los manualment. Si ens assegurem que el flux de control del programa es desvia perquè no accedeixi a les declaracions d'assert, no hi ha possibilitats d'errors d'assert.

Gestió de l'AssertionError

A més de la declaració d'asserció, també podem gestionar l'error d'asserció mitjançant els mètodes següents:

Gestió de l'error d'asserció mitjançant els blocs Try-Except

La declaració assert determina si els valors són iguals. El bloc try genera l'error AssertionError perquè aquests nombres enters no són iguals. L'ordre d'impressió s'executa després que el bloc excepte hagi detectat l'excepció. Aquí, es mostra la sortida de la declaració d'impressió del bloc d'excepcions. La paraula clau augmentar es pot utilitzar per tornar a plantejar l'error al bloc excepte de manera que puguem determinar l'origen de l'excepció. Quan es produeix una excepció, la paraula clau 'augmentar' generarà un error i finalitzarà el programa. Ajuda a mantenir o mantenir un registre/pista de l'excepció existent.

Gestió de l'AssertionError mitjançant el mòdul de seguiment

Quan el codi conté diverses declaracions d'assert, el mòdul de seguiment ajuda a identificar la font exacta de l'error.

Mitjançant el mòdul traceback, la nostra declaració d'impressió es pot escriure amb marcadors de posició {}.

A més, podem definir altres variables per emmagatzemar la posició de la línia, el nom del fitxer, el nom del mètode, així com el text/missatge on s'ha produït l'excepció.

L'objecte de seguiment s'anomena 'tb'. Utilitzem dos marcadors de posició: un per al text i un altre per a la posició de la línia a la declaració d'impressió.

La funció sys.exc_info() retorna els tres components de la sentència 'augment' (exc_type, exc_traceback i exc_value).

Gestió de l'AssertionError mitjançant la declaració d'impressió

Per gestionar manualment una excepció, podem utilitzar la declaració 'imprimir' dins del bloc excepte.

La declaració d'impressió imprimeix qualsevol missatge d'error que introdueixi l'usuari. Amb aquest mètode, un error tècnic no serà una preocupació per a l'usuari.

En lloc d'un error, es mostra un missatge breu.

Conclusió

En aquesta publicació, vam veure per primera vegada la introducció d'excepcions a Python. Hem parlat d'AssertionError, com funciona i com podem implementar AssertionError a Python. Hem explicat diversos avantatges d'AssertionError i com podem evitar-los. A l'última secció d'aquesta publicació, vam veure com podem gestionar l'AssertionError a Python mitjançant els blocs Try-Except, el mòdul de traçament i la declaració d'impressió.