Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Când scrieți cursuri în Python, puteți întâlni adesea termenul 'self.'
Este un concept crucial pe care începătorii trebuie să-l înțeleagă pe măsură ce se scufundă mai adânc în caracteristicile orientate pe obiecte în limbajul de programare Python.
Parametrul self
se referă la instanța curentă a unei clase. Îl puteți folosi pentru a accesa atributele și metodele care aparțin acelei clase.
În acest tutorial Python, vom explora modul în care self
variabila joacă un rol esențial în clasele Python. De asemenea, vă vom arăta cum să mențineți claritatea codului, modularitatea și reutilizarea prin utilizarea self
.
Cuprins
Înțelegerea Sinelui în Python
Python este un limbaj de programare orientată pe obiecte (OOP) care se bazează în mare măsură pe clase și obiecte. Deci, înainte de a ne scufunda în self
parametru, trebuie să înțelegem mai întâi ce este programarea orientată pe obiecte.
Programare orientată pe obiecte în Python
Scriere cu cretă – OOP, Programare orientată pe obiecte " data-medium-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg" data- large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="lazy" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Ce este Sinele în Python." class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" sizes="(max-width: 709px) 100vw, 709px">
Programarea orientată pe obiecte ajută programatorii să modeleze concepte și relații din lumea reală prin utilizarea claselor și a obiectelor. Acest lucru are ca rezultat un cod mai structurat, mai reutilizabil și mai scalabil.
Gândiți-vă la o clasă ca la un șablon pentru crearea de obiecte cu proprietăți și metode predefinite. De asemenea, un obiect este o instanță a unei clase care stochează propriile valori pentru atribute și are acces la funcțiile clasei.
Aceste două concepte sunt un bloc important în multe aplicații Python . Puteți vedea atât clasele, cât și obiectele la lucru în acest videoclip despre Cum să creați cu ușurință date cu biblioteca Python Faker.
Rolul Sinelui Python
Self
este o referință la instanța clasei în Python. Vă permite să accesați și să modificați atributele și metodele unei clase în propriul domeniu de aplicare.
Iată câteva puncte cheie despre utilizarea self
în Python:
Self
nu este un cuvânt cheie rezervat în sintaxa Python . Puteți folosi alte nume pentru a identifica instanțe de clasă, dar self
este convenția cea mai utilizată și acceptată de către programatorii Python.Self
este folosit ca prim parametru în metodele de instanță pentru a face referire la instanța curentă a clasei.self
pentru a distinge între atributele instanței și variabilele locale, făcând codul mai ușor de citit și mai puțin greșit.self
parametrul în __init__()
constructor și toți ceilalți constructori de funcții ulterioare din clasa dvs. Nerespectarea acestui lucru va duce la programul dvs. să arunce un typeerror
. class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given
Notă: Puteți deplasa folosind self
parametrul în funcții utilizând caracteristica metodei statice pe care o oferă Python 3. Vom intra în mai multe detalii despre asta într-o secțiune ulterioară.
Lucrul cu Sinele
Învățarea modului de utilizare self
este foarte importantă pentru a construi clase în Python. De-a lungul acestei secțiuni, veți învăța cum să utilizați self
în diferite scenarii atunci când lucrați cu clase și obiecte.
Inițializarea obiectelor cu „__init__()”
Când se creează o nouă instanță a unei clase, __init__()
metoda este apelată pentru a inițializa atributele obiectului. Metoda __init__()
este constructorul clasei și ia parametrul self
ca prim argument.
Parametrul self
este folosit în cadrul acestei metode pentru a asocia atributele instanței cu argumentele date.
Iată un exemplu:
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)
În acest exemplu, metoda ia , , și ca parametri în timpul inițializării obiectului. Parametrul se referă la instanța clasei, permițându-vă să setați atributele și pentru obiectul specific creat. init
self
name
age
self
name
age
Utilizarea Sinelui în Metode
Când definiți metode de instanță într-o clasă, ar trebui să includeți self
ca prim parametru. Acest lucru vă permite să accesați atributele instanței și alte metode din cadrul clasei.
Să extindem exemplul anterior:
class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()
În acest exemplu, introduce()
metoda include self
ca prim parametru. Acest lucru vă permite să accesați numele și atributele de vârstă ale obiectului și să creați o prezentare personalizată.
Când apelați metoda din codul dvs., nu trebuie să treceți parametrul
self
în mod explicit. Python se ocupă automat de el.
Urmând aceste linii directoare și înțelegând scopul self
în Python , începătorii pot lucra eficient cu clase și obiecte. Acest lucru îi permite să creeze un cod bine structurat, ușor de citit și de întreținut.
Cazuri comune de autoutilizare
Există multe moduri în care puteți utiliza cuvântul cheie în codul dvs. Python. Înțelegând aceste cazuri de utilizare, veți putea să le utilizați eficient în programele dvs. self
self
Să ne uităm la unele dintre ele:
Accesarea atributelor clasei
O utilizare principală a self
este accesarea atributelor de instanță dintr-o clasă. Atributele de instanță sunt specifice unui obiect creat din clasă și stochează datele obiectului.
Utilizarea self
vă permite să manipulați sau să accesați aceste atribute în cadrul metodelor de clasă. Să ne uităm la un exemplu:
class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)
În acest exemplu, am folosit self
pentru a accesa atributul nume al unui obiect Dog din cadrul display_name
metodei.
Apelarea metodelor de clasă
Un alt caz obișnuit de utilizare self
este apelarea altor metode de clasă din cadrul unei metode de instanță. Acest lucru vă permite să reutilizați codul, să reduceți complexitatea și să îmbunătățiți lizibilitatea.
Este esențial să utilizați self
atunci când faceți referire la alte metode, deoarece asigură că metoda corectă este apelată pentru o anumită instanță. Luați în considerare următorul exemplu:
class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)
În exemplul de mai sus, folosim self
pentru a apela show_species
metoda din interiorul show_info
metodei. Acest lucru ne permite să afișam specia și culoarea păsării într-un singur apel.
În cele din urmă, nu uitați să utilizați self
atunci când accesați atributele instanței și apelați metodele clasei. Odată ce înțelegeți aceste cazuri de utilizare, veți putea scrie cod Python mai eficient și mai organizat.
Cele mai bune practici de sine
Când lucrați cu, self,
există câteva convenții pe care trebuie să le urmați pentru a evita problemele și erorile în codul dvs. Aici sunt câțiva dintre ei.
Unde să te folosești de sine
Când definiți metode de instanță, utilizați întotdeauna parametrul self
ca prim parametru. Acest lucru vă permite să accesați și să modificați atributele de instanță ale obiectului și să apelați alte metode de instanță din cadrul clasei.
Este important de utilizat self
atunci când lucrați cu instanțe de obiect în Python. Folosirea acestuia asigură un comportament consistent și permite încapsularea corectă a obiectelor.
De exemplu, luați în considerare următoarea clasă:
class MyClass: def __init__(self, my_var): self.my_var = my_var
Aici, parametrul self este utilizat în __init__
metoda de inițializare a my_var
atributului instanței obiectului. În acest fel, devine un atribut specific instanței. my_var
Ca rezultat, poate fi accesat și modificat folosind referința personală în alte metode ale clasei.
Convenții de denumire pentru sine
În timp ce self
este numele convențional folosit pentru instanță în Python, puteți folosi din punct de vedere tehnic orice nume doriți. Cu toate acestea, este foarte recomandat să rămâneți la folosirea sinelui pentru claritate și coerență cu comunitatea mai largă Python.
Utilizarea unui nume diferit poate provoca confuzie celor care citesc și lucrează cu codul dvs., mai ales dacă sunt obișnuiți cu convențiile standard de denumire din bibliotecile Python.
Unde să nu se folosească de sine
Știm deja că self
parametrul oferă acces la instanța obiectului. Cu toate acestea, în unele cazuri, unele funcții din clasă ar putea să nu necesite acces la instanța obiectului.
În acest scenariu, parametrul de sine nu este necesar. Deci, Python oferă o caracteristică de metodă statică pentru ocolirea parametrului self:
Iată un exemplu:
class Car: @staticmethod def print_car(): print('Vroom Vroom')
În exemplul de mai sus, @staticmethod
decoratorul funcției suprascrie self
cerințele parametrului din metodă. În acest fel, funcția va rula în continuare chiar dacă nu există nicio instanță de obiect transmisă în ea.
Concluzie
Pe scurt, parametrul self din Python se referă la instanța unei clase și vă permite să accesați atributele și metodele acesteia. În calitate de dezvoltator Python, este important să înțelegeți scopul sinelui și utilizarea lui în clase și obiecte.
Folosind auto-ul în mod constant în codul dvs., promovați lizibilitatea și întreținerea, ceea ce îmbunătățește calitatea generală a muncii dvs.
De asemenea, rețineți că, deși este posibil să vedeți termenul "self"
folosit frecvent în Python, acesta nu este un cuvânt cheie Python rezervat. Acest lucru diferă de limbajele de programare precum Javascript și Java , unde "this"
este un cuvânt cheie rezervat.
Puteți numi primul parametru dintr-o metodă de clasă cum doriți; „ self
“ este doar convenția preferată.
Există o întrebare care plutește mereu printre programatorii Python. Este self de fapt un cuvânt cheie în Python?
Spre deosebire de alte limbaje de programare cum ar fi C++, unde self este considerat a fi un cuvânt cheie, în Python este o convenție pe care programatorii tind să o urmeze. Este practic un parametru în definiția unei metode. Cu toate acestea, puteți folosi orice alt nume în locul lui, ca altul sau eu sau orice altceva pentru primul parametru al unei metode. Un alt motiv pentru care este sugerat de majoritatea oamenilor este că îmbunătățește lizibilitatea codului dvs.
Să vedem un exemplu pentru a înțelege:
class myClass: def show(nother): print(„other is used in place of self”)
Dacă comparați acest cod cu codul pentru auto-constructorul clasei Python, veți observa că aici am folosit numele altul în locul de sine. Acum să creăm un obiect din această clasă și să vedem rezultatul:
obiect = myClass() object.show()
Puteți vedea că programul funcționează chiar dacă folosim un alt nume în locul variabilei self. Funcționează exact în același mod ca și variabila self.
Ce este Sinele în Python: Exemple din lumea reală
Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.
În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.
Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.
În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.
Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.
Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.
Ce este LuckyTemplates Gateway? Tot ce trebuie să știți