Mis on Pythonis AssertionError?
Väitevead on programmeerimiskontseptsioon, mis ilmneb siis, kui programmeerija kirjutab või loob koodiploki, mida kasutatakse kriteeriumi või tingimuse täitmiseks deklareerimiseks enne mooduli käivitamist. Nagu iga Pythoni viga, kantakse juhtimine üle järgmisele koodireale, kui väite tõeseks tunnistamisel määratud tingimus. Kui see on aga vale, kuvatakse viga või erand ja programm peatatakse. Väitelauset saab kasutada erinevates programmeerimiskeeltes nende spetsiifiliste süntaksitega, kuna see on keelest sõltumatu. See on alamklass või klassi Erandjuhtum. Python AssertionErroril on järgmine süntaks:
Süntaks: kinnitamise tingimus, veateade (valikuline)
Näide
Sisestame sisendiks inimese vanuse ja kui see on nullist väiksem, kuvab konsool kinnitusvea.
Mis siis, kui sisestame vanuse, mis on väiksem kui 0?
Selle meetodi abil koodi silumine on lihtsam, muutes programmis vigade leidmise ja vigade parandamise lihtsamaks.
Kuidas AssertionError Pythonis töötab
Pythoni keel sisaldab kinnituslauset, mida saab kasutada loogiliste väidetega lihtsate veateateväljundite genereerimiseks. Kui väiteavaldus ebaõnnestub, kuvatakse erand AssertionError. Pythonis on erandiklassid tuletatud BaseException klassist. Klass BaseException, mis on ka klassi AssertionError baasklass, on koht, kust Exception klass tuleneb. Alati peaks olema sobiv erandite käsitlemise kood, mis käsitleb kinnituslause ebaõnnestumist, kui seda kasutatakse. Pythoni erandite vaikekäsitleja prindib programmeerija kirjutatud veateate, kuid viga saab käsitleda või lahendada ka ilma veateateta.
AssertionErrori rakendamine Pythonis
Järgnevalt on toodud mitu näidet Pythoni AssertionErrori kohta:
Näide
Selles näites kirjutame Pythoni programmi, et kuvada ringi pindala leidvas programmis AssertionError.
Raadiuse väärtus “r” edastatakse sisendiks funktsioonile eelmises programmis, mis on loodud ringi pindala leidmiseks. Seejärel kasutatakse väitelauset, et teha kindlaks, kas esitatud väärtus või raadius 'r' on alla nulli, ja kui sellele antakse negatiivne väärtus, siis tehakse erand. Ringi pindala tagastatakse funktsioonile antud raadiuse “r” väärtuse alusel. Esiteks täidetakse funktsioon väärtusega r kui 3. Seejärel täidetakse funktsioon väärtusega 2,5. AssertionError tõstatatakse, kui kasutame negatiivset väärtust 'r', st '-1'.
Proovime veel ühte näidet väite vea esinemise kuvamiseks.
Näide
Selles näites määrab programm, kas nimetaja väärtus on nullist erinev.
Väitevea veateade kuvatakse eelmises programmis. Oleme loonud kaks muutujat (a ja b) ning täisarvulised väärtused määravad muutujad. Seejärel testitakse teist muutujat, st b-d, et näha, kas see pole võrdne 0-ga, kasutades kinnituslauset. Vastasel juhul prinditakse veateade. Kui ei, kuvatakse esimese arvu jagamise tulemus teise väärtusega. Eelmisel pildil kuvatakse programmi väljund.
AssertionErrori rakendused
Väitevea muud kasulikud kasutusviisid on järgmised:
- Väide aitab parameetrite väärtusi hinnata
- Väited aitavad jälgida sisendi tüüpi ja seda, kas see väärtus on kehtiv
- Lisaks aitavad väited tuvastada, kas mõni teine koodiarendaja liidest väärkasutab
- Väited aitavad programmi väljundit pidevalt jälgida
Kuidas saame Pythonis väitevigu vältida
- Pythoni programmis olevat lippu -O saab kasutada iga väitelause keelamiseks. Oluline on meeles pidada, et pärast väitelauset tulevaid avaldusi ei täideta, kui me väitelaused keelame.
- Keskkonnamuutuja saab määrata ka lipu, mis lülitab väidelaused välja. See olukord mõjutab kõiki protsesse ja rakendusi, mis kasutavad või pärivad keskkonda.
- Pythonis on kõige lihtsam viis kinnitusvigade vältimiseks neid käsitsi käsitleda. Kui tagame, et programmi juhtimisvoog suunatakse ümber nii, et see ei pääseks ligi väitelausetele, pole kinnitusvigade tõenäosust.
AssertionErrori käsitlemine
Lisaks väitelausele saame väitevea käsitleda ka järgmiste meetodite abil:
Kinnitusvea käsitlemine proovi-välja arvatud plokkide abil
Väitelause määrab, kas väärtused on võrdsed. Prooviplokk tõstab esile vea AssertionError, kuna need täisarvud ei ole võrdsed. Prindikäsk käivitatakse pärast seda, kui erandplokk on erandi tabanud. Siin kuvatakse erandiploki printimislause väljund. Märksõna tõstmine saab kasutada erandiplokis oleva vea uuesti esiletõstmiseks, et saaksime määrata erandi allika. Kui ilmneb erand, tekitab märksõna „tõstmine” veateate ja lõpetab programmi. See aitab säilitada või säilitada olemasoleva erandi arvestust/jälgi.
Assertion Error käsitlemine Traceback mooduli kasutamine
Kui kood sisaldab mitut kinnituslauset, aitab jälgimismoodul tuvastada täpse vea allika.
Tracebacki moodulit kasutades saab meie prindilause kirjutada kohahoidjatega {}.
Lisaks saame määratleda muid muutujaid, et salvestada rea asukoht, faili nimi, meetodi nimi ja tekst/sõnum, kus erand toimus.
Jälgimise objektile viidatakse kui „tb”. Kasutame kahte kohatäitjat: ühte teksti ja teist rea asukoha jaoks prindilauses.
Lause „raise” kolm komponenti – exc_type, exc_traceback ja exc_value – tagastab funktsioon sys.exc_info().
AssertionError'i käsitlemine Printimisavalduse kasutamine
Erandi käsitsi käsitlemiseks saame kasutada erandiploki sees lauset „prindi”.
Prindiavaldus prindib kasutaja sisestatud veateate. Selle meetodi puhul ei valmista tehniline viga kasutajale muret.
Vea asemel kuvatakse lühike teade.
Järeldus
Selles postituses nägime esmakordselt Pythonis erandite tutvustamist. Arutasime AssertionErrori, selle toimimist ja seda, kuidas saame Pythonis AssertionErrori rakendada. Selgitasime mitmeid AssertionErrori eeliseid ja kuidas neid vältida. Selle postituse viimases jaotises nägime, kuidas saame Pythonis AssertionErrori käsitleda, kasutades Try-Except Blocks, jälgimismoodulit ja printimisavaldust.