logo

selv i Python-klassen

Selv representerer forekomsten av klassen. Ved å bruke selvet kan vi få tilgang til attributtene og metodene til klassen i Python . Den binder attributtene med de gitte argumentene. Grunnen til at du trenger å bruke deg selv. er fordi Python ikke bruker @-syntaksen for å referere til forekomstattributter. Python bestemte seg for å gjøre metoder på en måte som gjør at forekomsten som metoden tilhører sendes automatisk, men ikke mottas automatisk: den første parameteren av metoder er forekomsten metoden kalles på.

Hva er bruken av selv i Python?

Når du arbeider med klasser i Python, refererer begrepet selv til forekomsten av klassen som brukes for øyeblikket. Det er vanlig å bruke selv som den første parameteren i instansmetoder i en klasse. Hver gang du kaller en metode for et objekt opprettet fra en klasse , sendes objektet automatisk som det første argumentet ved å bruke self-parameteren. Dette lar deg endre objektets egenskaper og utføre oppgaver som er unike for den aktuelle forekomsten.

Python3






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

>

>

Produksjon:

17>

Python Class selvkonstruktør

Når du arbeider med klasser, er det viktig å forstå at i Python er en klassekonstruktør en spesiell metode som heter __varmt__ som blir kalt når du oppretter en forekomst (objekt) av en klasse. Denne metoden brukes til å initialisere attributtene til objektet. Husk at selv-parameteren i konstruktøren refererer til forekomsten som opprettes og lar deg få tilgang til og angi dens attributter. Ved å følge disse retningslinjene kan du lage kraftige og effektive klasser i Python.

Python3




nummen prikk

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

>

>

Produksjon:

Maths Science>

Er selv i Python et nøkkelord?

Nei, 'selv' er ikke en søkeord i Python. Self>er bare et parameternavn som brukes i instansmetoder for å referere til selve instansen.

På en mer tydelig måte kan du si at SELV har følgende kjennetegn-

Selv: Peker til gjeldende objekt

Selvet peker alltid på det nåværende objektet. Når du oppretter en forekomst av en klasse, lager du i hovedsak et objekt med sitt eget sett med attributter og metoder.

Python3




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

>

>

Produksjon:

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

Eksempel: Opprette klasse med attributter og metoder

Denne koden definerer en Python-klassecar>som representerer biler med attributtene 'modell' og 'farge'. De__init__>konstruktør initialiserer disse attributtene for hver forekomst. Deshow>metoden viser modell og farge, mens direkte attributttilgang og metodekall demonstrerer forekomstspesifikk datainnhenting.

Python3




jpa vs dvalemodus
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)>

>

>

Produksjon:

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>

Selv i konstruktører og metoder

Selvet er det første argumentet som sendes inn Konstruktør og Instance Method.Self må oppgis som en First-parameter til Instance-metoden og konstruktøren. Hvis du ikke oppgir det, vil det føre til en feil.

Python3


arv java



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

>

>

Selv: konvensjon, ikke nøkkelord

Selvet er en konvensjon og ikke en Python nøkkelord . Self er en parameter i Instance Method og brukeren kan bruke et annet parameternavn i stedet for det. Men det er tilrådelig å bruke self fordi det øker lesbarheten til kode, og det er også en god programmeringspraksis.

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()>

>

>

Produksjon:

we have used another parameter name in place of self>