E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Python

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

DEVELOPMENT  /  Python  /  Introducere in Python (4)

Introducere in Python - Partea a IV-a. Clase si obiecte

14.09.2009
 Introducere in Python - Partea a IV-a. Clase si obiecte

Programarea in general se bazeaza foarte mult pe reutilizarea codului. De obicei, aceasta se realizeaza cu ajutorul functiilor. Daca ai scris deja un cod ce indeplineste o anumita sarcina, atunci il poti executa de oricate ori vrei daca il incluzi intr-o functie. In plus, o functie poate fi apelata de oriunde din cod si computerul va sti intotdeauna la ce te referi.

Total vizualizari: 11691 11691 afisari   |   Comentarii  0   |   Rating   |   (0 voturi)   |   Timp necesar: 30 min 30 min   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  sthurlow  
Autor:  http://www.sthurlow.com/python/lesson08/
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
« 1 2
comenteaza printeaza

Python face mostenirea foarte usoara. Iti amintesti de clasa FormaGeometrica? Sa zicem ca am vrea sa definim o clasa noua, sa spunem un patrat, pe baza clasei precedente:

 
class Patrat(FormaGeometrica):
    def __init__(self,x):
    self.x = x
    self.y = x

Dupa cum poti observa, numele clasei parinte a fost trecut intre paranteze dupa numele clasei copil. Aceasta inseamna ca noua clasa Patrat va contine toate proprietatile si metodele clasei FormaGeometrica. Singurul lucru pe care trebuie sa-l mai faci este sa redefinesti functia __init__, astfel incat latimea (x) si inaltimea(y) obiectului de tip Patrat sa fie egale.

Sa aplicam ce am invatat si sa cream o noua clasa, de aceasta data mostenita din Patrat:

 
class PatratDublu(Patrat):
    def __init__(self,y):
        self.x = 2 * y
        self.y = y
    def perimetrul(self):
        return 2 * self.x + 3 * self.y

Aceasta clasa va reprezenta doua patrate lipite, ceea ce inseamna ca trebuie sa redefinim si functia ce calculeaza perimetrul. Ca exercitiu, incearca sa creezi o instanta a acestei clase.

Referinte si liste de obiecte

Operatorul de atribuire functioneaza diferit pentru obiecte. In cazul variabilelor scalare, daca scriem variabila2 = variabila1 inseamna ca variabila2 va prelua valoarea variabilei 1.

In cazul obiectelor, daca avem o atribuire instanta2 = instanta1, cele doua variabile vor reprezenta referinte catre acelasi obiect. Cu alte cuvinte, daca proprietatile obiectului instanta1 sunt modificate, aceasta modificare va fi vizibila si in instanta2.

In alte limbaje, astfel de atribuiri sunt efectuate cu ajutorul pointerilor, dar in python aceasta operatie se efectueaza transparent.

Aspectul final pe care il vom discuta se refera la dictionare de obiecte. Tinand minte ceea ce tocmai am invatat despre pointeri, putem atribui o instanta a unei clase unei intrari dintr-o lista sau dictionar. Aceasta permite gruparea mai multor obiecte sub un singur nume de lista sau dictionar. Iata un exemplu:

 
# Acest exemplu presupune ca au fost deja definite 
# clasele FormaGeometrica, Patrat si PatratDublu.
# Mai intai cream dictionarul: 
dictionary = {}
 
# Apoi definim cateva obiecte pe care le adaugam in dictionar:
dictionary["Patrat dublu 1"] = PatratDublu(5)
dictionary["Dreptunghi lung"] = FormaGeometrica(600,45)
 
# Calculam aria unui obiect din dictionar:
print dictionary["Dreptunghi lung"].aria()
 
# Setam autorul unui obiect din dictionary, apoi il afisam
dictionary["Patrat dublu 1"].seteazaAutor("Autor")
print dictionary["Patrat dublu 1"].autor

Dupa cum poti observa, pur si simplu am inlocuit numele de variabila din partea stanga cu un element din dictionar. Interesant, nu?

Cam atat despre clase si obiecte. In urmatorul tutorial vei putea citi despre module si utilizarea lor in Python.


Pagina:
« 1 2
comenteaza printeaza

Cuvinte cheie:   python,   clasa,   obiect,   referinta,   functie,   mostenire,   instantiere,   metoda,   incapsulare,   structura de date

Alte tutoriale Python:
Noteaza acest tutorial
Rating tutorial
 
(0 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5320
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5280
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
5125
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
5110
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
4855
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Vista XML Ruby on Rails Swift 3D Java Gimp PHP Sony Vegas Excel Illustrator Action Script JSON COREL DRAW HTML Bridge Python CSS Lightroom XHTML StyleSheet Photoshop Fireworks MySQL Javascript PSD SWF Outlook AJAX Word Powerpoint Fotografie Verilog RoR SEO Dreamweaver Flash
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software