Kazi yenye Kukwepa katika Python
Vikwepo vinafaa kabisa kutupwa, ukivibainisha katika kazi kwa kutumia masharti.
Tufanye kazi get_sum,
ambayo itatoa jumla ya vipengele
ya orodha tu, ikiwa urefu wa orodha ni mdogo
kuliko au sawa na 3. Vinginevyo,
iachwe kitupwe kikwepo chetu ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Sasa tupe kazi get_sum
orodha na tuonyeshe kazi kwenye koni:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # itatoa 6
Pia katika kazi unaweza kubainisha ukamataji
wa aina kadhaa za vikwepo. Tufanye
darasa lingine la vikwepo ToSmallLength:
class ToSmallLength(Exception):
pass
Sasa tubainishe katika kazi sharti, ikiwa
urefu wa orodha ni sawa na sifuri, basi aachwe kitupwe
ToSmallLength. Ikiwa hakikamatwi
kikwepo chochote, basi aachwe kionyeshe
jumla ya vipengele vyote vya orodha:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Kwa urahisi unaweza kuweka orodha, ambayo
itapewa kwenye kigezo cha kazi,
kazi yenyewe na mwito wake katika kizuizi try.
Na ukamataji wa vikwepo vyetu viwili uweke
katika vitenganishi except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Unda kazi, ambayo kigezo chake kitakuwa
kupokea nambari. Ndani yake bainisha masharti,
ikiwa nambari ni hasi na sawa na sifuri, basi
achwe zitupwe vikwepo vinavyofanana.
vinginevyo acha nambari izidishwe
kwa 3.
Angalia utendaji wa kazi uliyounda kwa
msaada wa muundo try-except. Wakati
huo pia kamata vikwepo vyako.