Table of contents
Metode de baza
__init__
Metoda __init__ este un constructor special în Python și este folosită pentru a inițializa obiectele create dintr-o clasă. Este apelată automat atunci când se creează o instanță a clasei. Cu alte cuvinte, __init__ este responsabilă pentru inițializarea atributelor obiectului cu valorile specificate atunci când obiectul este creat.
Pe scurt:
-
Constructor:
__init__servește ca un constructor pentru obiectele clasei. Atunci când se creează o instanță a clasei, această metodă este apelată automat. -
Parametri:
selfeste un parametru special care reprezintă instanța obiectului care va fi creat. Alți parametri ai metodei sunt folosiți pentru a furniza informații inițiale pentru obiect. -
Inițializare a atributelor: În cadrul metodei
__init__, puteți inițializa atributele obiectului cu valorile corespunzătoare. Atributele sunt variabilele asociate cu obiectul.
Exemplul dat în introducerea la clasele Python arată cum __init__ este folosit. Iată o parte a codului relevant:
class Masina:
# ...
# Metoda constructor (inițializare)
def __init__(self, marca, model, an_fabricatie):
self.marca = marca
self.model = model
self.an_fabricatie = an_fabricatie
În acest exemplu, atunci când creați o instanță a clasei Masina prin masina_mea = Masina("Toyota", "Corolla", 2020), metoda __init__ este apelată automat, iar atributele marca, model și an_fabricatie ale obiectului masina_mea sunt inițializate cu valorile specificate.
Pe scurt, __init__ este esențial în programarea orientată pe obiect pentru a asigura inițializarea corectă a obiectelor create dintr-o clasă.
self
self este un cuvânt-cheie special în Python și este folosit pentru a face referire la instanța obiectului în cadrul metodelor unei clase. Acesta nu este un cuvânt rezervat strict, dar este o convenție în Python să folosiți self ca primul parametru al metodelor de clasă.
Pe scurt:
-
Referire la Instanță: Atunci când definiți metode într-o clasă, primul parametru ar trebui să fie
self. Această convenție face ca metoda să poată accesa și modifica atributele clasei și să interacționeze cu instanța obiectului. -
Numire Convențională: Deși puteți folosi orice nume în loc de
selfpentru primul parametru al unei metode de clasă, este o practică comună și o convenție să utilizațiself. Acest lucru face codul mai ușor de înțeles și de citit pentru alți programatori. -
Legătură cu Instanța: Când apelați o metodă a unei instanțe a clasei, Python se ocupă automat de transmiterea referinței la instanța (adică
self). De exemplu, în apelulmasina_mea.afiseaza_informatii(), Python în spatele scenei transmitemasina_meaca valoare pentruself.
Iată un exemplu pentru a ilustra utilizarea self în metoda __init__ a unei clase:
class Masina:
def __init__(self, marca, model, an_fabricatie):
# Utilizarea lui self pentru a face referire la instanța obiectului
self.marca = marca
self.model = model
self.an_fabricatie = an_fabricatie
def afiseaza_informatii(self):
# Utilizarea lui self pentru a accesa atributele instanței
print(f"Mașina {self.marca} {self.model}, fabricată în {self.an_fabricatie}")
În acest exemplu, self este folosit pentru a face referire la instanța curentă a clasei (Masina). Când apelați metoda afiseaza_informatii(), self se referă la instanța respectivă a clasei, permitându-vă să accesați și să utilizați atributele acelei instanțe.
str
Metoda __str__ este o altă metodă specială în Python, iar scopul său este să furnizeze o reprezentare ușor de citit a unui obiect sub formă de șir de caractere. Atunci când folosiți funcția str() sau funcția print() pentru a afișa un obiect, Python va încerca să apeleze automat metoda __str__ a obiectului respectiv pentru a obține o reprezentare text.
Iată un exemplu simplu pentru a ilustra utilizarea metodei __str__:
class Masina:
def __init__(self, marca, model, an_fabricatie):
self.marca = marca
self.model = model
self.an_fabricatie = an_fabricatie
def __str__(self):
# Returnează o reprezentare sub formă de șir de caractere a obiectului
return f"Mașina {self.marca} {self.model}, fabricată în {self.an_fabricatie}"
# Crearea unei instanțe a clasei
masina_mea = Masina("Toyota", "Corolla", 2020)
# Utilizarea metodei __str__ prin intermediul funcției print
print(masina_mea)
În acest exemplu, metoda __str__ este definită în cadrul clasei Masina. Când se utilizează funcția print(masina_mea), Python va apela automat __str__ pentru a obține o reprezentare sub formă de șir de caractere a obiectului masina_mea. Acest lucru oferă o modalitate convenabilă de a controla modul în care obiectele sunt reprezentate textual.
Folosirea metodei __str__ este utilă în special atunci când doriți să oferiți o reprezentare ușor de înțeles a obiectelor pentru a facilita depanarea și înțelegerea codului.
Exerciții
- Creați o clasă pentru un Telefon:
- Definiți o clasă
Telefoncu următoarele atribute:marca,modelșipret. Utilizați metoda__init__pentru a inițializa aceste atribute. Adăugați, de asemenea, o metodă__str__pentru a afișa informațiile despre telefon sub formă de șir de caractere.
- Definiți o clasă
- Gestiunea Studenților:
- Creați o clasă
Studentcu atributelenume,varstașinote(o listă de note). Utilizați metoda__init__pentru a inițializa aceste atribute. Adăugați, de asemenea, o metodă__str__care să afișeze informațiile despre student sub formă de șir de caractere.
- Creați o clasă
# Exemplu de utilizare
student1 = Student("Alice", 20, [8, 9, 7])
print(student1)