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 selfse 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 selfvariabila 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 selfparametru, trebuie să înțelegem mai întâi ce este programarea orientată pe obiecte.

Programare orientată pe obiecte în Python

Ce este Sinele în Python: Exemple din lumea reală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:

  • Selfnu este un cuvânt cheie rezervat în sintaxa Python . Puteți folosi alte nume pentru a identifica instanțe de clasă, dar selfeste convenția cea mai utilizată și acceptată de către programatorii Python.
  • Selfeste folosit ca prim parametru în metodele de instanță pentru a face referire la instanța curentă a clasei.
  • Puteți utiliza selfpentru a distinge între atributele instanței și variabilele locale, făcând codul mai ușor de citit și mai puțin greșit.
  • Când apelează o metodă de instanță, Python transmite automat instanța ca prim parametru.
  • Trebuie să declarați selfparametrul î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.

    Puteți vedea un exemplu de această eroare mai jos:

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

Ce este Sinele în Python: Exemple din lumea reală

Î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__()”

Ce este Sinele în Python: Exemple din lumea reală

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 selfeste 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 selfnameageself nameage

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 selfca 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

Ce este Sinele în Python: Exemple din lumea reală

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 selfeste accesarea atributelor de instanță dintr-o clasă. Atributele de instanță sunt specifice unui obiect creat din clasă și stochează datele obiectului.

Utilizarea selfvă 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 selfeste 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 selfatunci 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 selfpentru a apela show_speciesmetoda din interiorul show_infometodei. 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 selfatunci 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

Ce este Sinele în Python: Exemple din lumea reală

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 selfca 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 selfatunci 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 selfeste 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ă selfparametrul 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, @staticmethoddecoratorul funcției suprascrie selfcerinț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

Ce este Sinele în Python: Exemple din lumea reală

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ă.

Este self un cuvânt cheie în Python? 

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ă

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

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.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Î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.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

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.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

Î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.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

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.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

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.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

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

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți