28.01.2015 Views

Tutorial Python - Starship

Tutorial Python - Starship

Tutorial Python - Starship

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

în loc de un fişier.<br />

Metodele obiectelor au, de asemenea, atribute: metodă.im__self reprezintă obiectul de care aparţine metoda<br />

specificată, iar metodă.im__func reprezintă funcţia corespunzătoare metodei.<br />

9.8 Excepţiile pot fi clase<br />

Excepţiile definite de utilizator pot fi atât obiecte de tip string, cât şi clase. Folosind clasele pentru a defini<br />

excepţii, puteţi crea o întreagă ierarhie de excepţii care poate fi foarte uşor extinsă.<br />

Există o altă formă a insrucţiunii raise:<br />

raise Class, instance<br />

raise instance<br />

În prima formă instance trebuie să fie o instanţă a clasei Class sau a unei clase derivate. A doua formă este<br />

o prescurtare pentru:<br />

raise instance.__class__, instance<br />

O clauză except poate afişa atât excepţii de tip clasă, cât şi de tip şir de caractere. Următorul exemplu va afişa<br />

B, C, D în această ordine:<br />

class B:<br />

pass<br />

class C(B):<br />

pass<br />

class D(C):<br />

pass<br />

for c in [B, C, D]:<br />

try:<br />

raise c()<br />

except D:<br />

print "D"<br />

except C:<br />

print "C"<br />

except B:<br />

print "B"<br />

De observat că dacă ordinea clauzelor except ar fi fost inversă, (cu except B la început), exemplul ar fi afişat<br />

B, B, B; deoarece clasa B este clasa din care sunt derivate clasele C şi D.<br />

Când un mesaj de eroare este afişat pentru o excepţie netratată ce provine dintr-o clasă, numele clasei este de<br />

asemenea afişat.<br />

9.9 Iteratori<br />

Pâna acum aţi observat că majoritatea obiectelor container se pot baleia utilizând instrucţiunea for :<br />

9.8. Excepţiile pot fi clase 65

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!