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.

jos” sau “cel mai adânc”) 1 . Atribuirile nu realizează o copiere a datelor, ci leagă nume de obiecte. Acest lucru<br />

este valabil şi pentru ştergeri. Instrucţiunea del x şterge legătura lui x din domeniul local de definiţie. De fapt<br />

toate operaţiinile care introduc nume noi au impact asupra domeniului de definiţii local: instrucţiunile import,<br />

sau definiţia unei funcţii, introduc numele modulului importat, respectiv numele funcţiei, în domeniul de definiţii<br />

local. Dacă este folosită instrucţuinea global se indică intrepretorului ca următorul nume să fie introdus în<br />

domeniul global.<br />

9.3 O primă privire asupra claselor<br />

Noţiunea de clasă aduce cu sine şi câteva alte noţiuni noi de sintaxă, trei tipuri noi de obiecte, şi câteva noţiuni noi<br />

de semantică.<br />

9.3.1 Sintaxa de definire a unei clase<br />

Cea mai simplă definiţie a unei clase arată astfel:<br />

class ClassName:<br />

<br />

.<br />

.<br />

.<br />

<br />

Definiţiile de clase, la fel ca definiţiile de funcţii, sunt valabile de abia după ce sunt executate. Puteţi insera o<br />

definiţie de clasă în cadrul unei instrucţiuni if, şi clasa nu va exista decât dacă condiţia instrucţiunii if va fi<br />

adevărată.<br />

În practică, instrucţiunile din interiorul unei clase vor fi definiţii de funcţii, dar sunt permise şi alte instrucţuni care<br />

pot fi uneori foarte utile. Definiţiile de funcţii din cadrul unei clase sunt un pic deosebite faţă de ce cunoaşteţi până<br />

acum, dar despre asta vom vorbi mai târziu.<br />

Atunci când este introdusă definiţia unei clase noi, un nou domeniu de definiţii a numelor este creat şi folosit ca<br />

domeniu de vizibilitate local, deci toate atribuirile vor afecta noul domeniu de definiţii creat. Definiţiile de funcţii<br />

vor introduce numele acelor funcţii tot în acest domeniu.<br />

Când definiţia unei clase se termină normal, fără erori, este creat un obiect nou de tipul class. Pe scurt, acest<br />

obiect “conţine” noul domeniu de definiţii creat odată cu definiţia clasei. În următoarea secţiune vom discuta mai<br />

mult despre obiectele de tip class. Domeniul de vizibilitate existent înaintea definiţiei clasei este reactivat, şi<br />

obiectul class este introdus în respectivul domeniu de definiţii sub numele dat de numele specificat în definiţia<br />

clasei (în exemplul de mai sus: ClassName).<br />

9.3.2 Obiecte clasă (class)<br />

Această categorie de obiecte acceptă două categorii de operaţii: referenţieri de atribute şi instanţieri.<br />

Referenţierile de atribute folosesc sintaxa standard din <strong>Python</strong>: obiect.atribut. Atribute valide sunt toate<br />

numele existente în domeniul de definiţii în momentul creării obiectului class. Aşa că, dacă definiţia clasei arată<br />

astfel:<br />

class MyClass:<br />

"Un exemplu simplu de clasa"<br />

i = 12345<br />

def f(self):<br />

return ’hello world’<br />

1 N.T. termenul original este innermost<br />

9.3. O primă privire asupra claselor 59

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

Saved successfully!

Ooh no, something went wrong!