Funksie met Uitsondering in Python
Uitsonderings is baie gerieflik om te gooi, deur dit in funksies met behulp van voorwaardes te skryf.
Kom ons maak 'n funksie get_sum,
wat die som van die elemente van 'n lys
sal teruggee, slegs as die lengte van die lys
kleiner as of gelyk aan 3 is. Andersins,
laat ons eie uitsondering ToBigLength gegooi word:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Laat ons nou 'n lys aan die funksie get_sum
oordra en die resultaat in die konsole druk:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # sal 6 druk
In funksies kan jy ook die onderskepping van
verskeie tipes uitsonderings spesifiseer. Kom ons
skep nog 'n uitsonderingsklas ToSmallLength:
class ToSmallLength(Exception):
pass
Laat ons nou in die funksie 'n voorwaarde skryf: as
die lengte van die lys gelyk is aan nul, moet
ToSmallLength gegooi word. As geen uitsondering
onderskep word nie, moet die som van alle elemente
in die lys teruggegee word:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Vir gerief kan jy die lys wat aan die funksie
se parameter oorgedra word, die funksie self,
en die aanroep daarvan, in 'n try-blok plaas.
En die onderskepping van ons twee uitsonderings
kan in except-blokke geplaas word:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Skep 'n funksie wat 'n getal as parameter sal
aanvaar. Skryf daarin voorwaardes:
as die getal negatief is of gelyk is aan nul, moet
ooreenstemmende uitsonderings gegooi word.
Andersins moet die getal met 3 vermenigvuldig word.
Toets die werking van jou geskepte funksie met
behulp van die try-except-konstruksie.
Onderskep ook jou uitsonderings.