logo

zichzelf in de Python-les

Self vertegenwoordigt de instantie van de klasse. Door het zelf te gebruiken, hebben we toegang tot de attributen en methoden van de klasse in Python . Het verbindt de attributen met de gegeven argumenten. De reden waarom je jezelf moet gebruiken. komt omdat Python de @-syntaxis niet gebruikt om naar instantiekenmerken te verwijzen. Python besloten om methoden zo uit te voeren dat de instantie waartoe de methode behoort automatisch wordt doorgegeven, maar niet automatisch wordt ontvangen: de eerste parameter van methoden is de instantie waartoe de methode wordt aangeroepen.

Wat is het nut van zelf in Python?

Bij het werken met klassen in Python verwijst de term self naar de instantie van de klasse die momenteel wordt gebruikt. Het is gebruikelijk om self als de eerste parameter te gebruiken in instancemethoden van een klasse. Telkens wanneer u een methode aanroept van een object dat is gemaakt op basis van a klas , wordt het object automatisch doorgegeven als het eerste argument met behulp van de parameter self. Hierdoor kunt u de eigenschappen van het object wijzigen en taken uitvoeren die uniek zijn voor dat specifieke exemplaar.

Python3






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

>

>

Uitgang:

17>

Zelfbouwer van Python-klasse

Wanneer u met klassen werkt, is het belangrijk om te begrijpen dat in Python een klassenconstructor een speciale methode is genaamd __heet__ dat wordt aangeroepen wanneer u een instantie (object) van een klasse maakt. Deze methode wordt gebruikt om de attributen van het object te initialiseren. Houd er rekening mee dat de parameter self in de constructor verwijst naar de instantie die wordt gemaakt en waarmee u de attributen ervan kunt openen en instellen. Door deze richtlijnen te volgen, kun je krachtige en efficiënte klassen maken in Python.

Python3




Verilog-zaakverklaring

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

>

>

Uitgang:

Maths Science>

Is zelf in Python een trefwoord?

Nee, ‘zelf’ is geen trefwoord in Python. Self>is slechts een parameternaam die in instantiemethoden wordt gebruikt om naar de instantie zelf te verwijzen.

Op een duidelijkere manier kun je zeggen dat SELF de volgende kenmerken heeft:

Zelf: aanwijzer naar huidig ​​object

Het zelf wijst altijd naar het huidige object. Wanneer u een instantie van een klasse maakt, maakt u in feite een object met zijn eigen set attributen en methoden.

Python3




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

>

>

gzip voor Linux

Uitgang:

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

Voorbeeld: Klasse maken met attributen en methoden

Deze code definieert een Python-klassecar>die auto's vertegenwoordigt met de attributen 'model' en 'kleur'. De__init__>constructor initialiseert deze kenmerken voor elke instantie. Deshow>methode geeft model en kleur weer, terwijl directe attribuuttoegang en methodeaanroepen het ophalen van exemplaarspecifieke gegevens demonstreren.

Python3




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

>

>

Uitgang:

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>

Zelf in constructeurs en methoden

Zelf is het eerste argument dat moet worden doorgegeven Constructeur en Instance Method.Self moeten worden opgegeven als een First-parameter voor de Instance-methode en -constructor. Als u dit niet verstrekt, zal dit een fout veroorzaken.

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>

>

>

Zelf: Conventie, geen trefwoord

Het zelf is een conventie en niet een Python-trefwoord . Self is een parameter in Instance Method en de gebruiker kan in plaats daarvan een andere parameternaam gebruiken. Maar het is raadzaam om zelf te gebruiken, omdat dit de leesbaarheid van de code vergroot, en het is ook een goede programmeerpraktijk.

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

>

slapen in javascript
>

Uitgang:

we have used another parameter name in place of self>