logo

sine în clasa Python

Sinele reprezintă instanța clasei. Folosind self-ul putem accesa atributele și metodele clasei în Piton . Leagă atributele cu argumentele date. Motivul pentru care trebuie să te folosești de sine. deoarece Python nu folosește sintaxa @ pentru a se referi la atributele instanței. Piton a decis să facă metode într-un mod care să facă ca instanța căreia îi aparține metoda să fie transmisă automat, dar să nu fie primită automat: primul parametru al metodelor este instanța la care este apelată metoda.

La ce folosește self-ul în Python?

Când lucrați cu clase în Python, termenul self se referă la instanța clasei care este utilizată în prezent. Este obișnuit să se folosească self ca prim parametru în metodele de instanță ale unei clase. Ori de câte ori apelați o metodă a unui obiect creat din a clasă , obiectul este transmis automat ca prim argument folosind parametrul self. Acest lucru vă permite să modificați proprietățile obiectului și să executați sarcini unice pentru respectiva instanță.



Python3






class> mynumber:> >def> __init__(>self>, value):> >self>.value>=> value> > >def> print_value(>self>):> >print>(>self>.value)> obj1>=> mynumber(>17>)> obj1.print_value()>



>

>

Ieșire:

17>

Python Class self Constructor

Când lucrați cu clase, este important să înțelegeți că în Python, un constructor de clasă este o metodă specială numită __Fierbinte__ care este apelat atunci când creați o instanță (obiect) a unei clase. Această metodă este folosită pentru a inițializa atributele obiectului. Rețineți că parametrul self din constructor se referă la instanța creată și vă permite să accesați și să setați atributele acesteia. Urmând aceste instrucțiuni, puteți crea clase puternice și eficiente în Python.

Python3




class> Subject:> >def> __init__(>self>, attr1, attr2):> >self>.attr1>=> attr1> >self>.attr2>=> attr2> obj>=> Subject(>'Maths'>,>'Science'>)> print>(obj.attr1)> print>(obj.attr2)>

>

>

Ieșire:

Maths Science>

Este self-ul în Python un cuvânt cheie?

Nu, ' de sine ' nu este o cuvânt cheie în Python. Self>este doar un nume de parametru folosit în metodele de instanță pentru a se referi la instanța în sine.

Într-un mod mai clar, puteți spune că SELF are următoarele Caracteristici:

Self: Indicator către obiectul curent

Sinele este întotdeauna îndreptat către Obiectul Actual. Când creați o instanță a unei clase, în esență creați un obiect cu propriul set de atribute și metode.

Python3




class> check:> >def> __init__(>self>):> >print>(>'Address of self = '>,>id>(>self>))> obj>=> check()> print>(>'Address of class object = '>,>id>(obj))>

>

>

Ieșire:

Address of self = 140273244381008 Address of class object = 140273244381008>

Exemplu: Crearea clasei cu atribute și metode

Acest cod definește o clasă Pythoncar>reprezentând mașini cu atribute „model” și „culoare”. The__init__>constructorul inițializează aceste atribute pentru fiecare instanță. Theshow>metoda afișează modelul și culoarea, în timp ce accesul direct la atribute și apelurile de metodă demonstrează regăsirea datelor specifice unei instanțe.

Python3




cate saptamani intr-o luna
class> car():> > ># init method or constructor> >def> __init__(>self>, model, color):> >self>.model>=> model> >self>.color>=> color> > >def> show(>self>):> >print>(>'Model is'>,>self>.model )> >print>(>'color is'>,>self>.color )> > # both objects have different self which contain their attributes> audi>=> car(>'audi a4'>,>'blue'>)> ferrari>=> car(>'ferrari 488'>,>'green'>)> audi.show()># same output as car.show(audi)> ferrari.show()># same output as car.show(ferrari)> print>(>'Model for audi is '>,audi.model)> print>(>'Colour for ferrari is '>,ferrari.color)>

>

>

Ieșire:

Model is audi a4 color is blue Model is ferrari 488 color is green Model for audi is audi a4 Colour for ferrari is green>

Sine în Constructori și Metode

Sinele este primul argument care trebuie transmis Constructor și Instance Method.Self trebuie furnizate ca prim parametru la metoda și constructorul Instance. Dacă nu îl furnizați, va provoca o eroare.

Python3




# Self is always required as the first argument> class> check:> >def> __init__():> >print>(>'This is Constructor'>)> object> => check()> print>(>'Worked fine'>)> # Following Error is produced if Self is not passed as an argument> Traceback (most recent call last):> >File> '/home/c736b5fad311dd1eb3cd2e280260e7dd.py'>, line>6>,>in> > >object> => check()> TypeError: __init__() takes>0> positional arguments but>1> was given>

>

>

Sine: convenție, nu cuvânt cheie

Sinele este o convenție și nu o Cuvânt cheie Python . Self este un parametru în Metoda instanței și utilizatorul poate folosi un alt nume de parametru în locul acestuia. Dar este recomandabil să folosiți self deoarece crește lizibilitatea codului și este, de asemenea, o bună practică de programare.

Python3




class> this_is_class:> >def> __init__(in_place_of_self):> >print>(>'we have used another '> >'parameter name in place of self'>)> > object> => this_is_class()>

>

>

Ieșire:

we have used another parameter name in place of self>