Själv representerar klassens förekomst. Genom att använda jaget kan vi komma åt klassens attribut och metoder i Pytonorm . Den binder attributen med de givna argumenten. Anledningen till att du behöver använda dig själv. beror på att Python inte använder @-syntaxen för att referera till instansattribut. Pytonorm beslutat att göra metoder på ett sätt som gör att instansen som metoden tillhör skickas automatiskt, men inte tas emot automatiskt: den första parametern av metoder är instansen som metoden anropas på.
Vad är användningen av själv i Python?
När man arbetar med klasser i Python syftar termen själv på den instans av klassen som för närvarande används. Det är vanligt att använda sig själv som den första parametern i instansmetoder i en klass. När du anropar en metod för ett objekt skapat från en klass , skickas objektet automatiskt som det första argumentet med self-parametern. Detta gör att du kan ändra objektets egenskaper och utföra uppgifter som är unika för just den instansen.
Python3
class> mynumber:> >def> __init__(>self>, value):> >self>.value>=> value> > >def> print_value(>self>):> >print>(>self>.value)> obj1>=> mynumber(>17>)> obj1.print_value()> |
sträng till int java
>
>
Produktion:
17>
Python Class självkonstruktör
När du arbetar med klasser är det viktigt att förstå att i Python är en klasskonstruktor en speciell metod som heter __varm__ som anropas när du skapar en instans (objekt) av en klass. Denna metod används för att initiera objektets attribut. Tänk på att self-parametern i konstruktorn refererar till instansen som skapas och låter dig komma åt och ställa in dess attribut. Genom att följa dessa riktlinjer kan du skapa kraftfulla och effektiva klasser i 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)> |
>
>
Produktion:
Maths Science>
Är själv i Python ett nyckelord?
Nej, 'själv' det är inte en nyckelord i Python. Self>är bara ett parameternamn som används i instansmetoder för att referera till själva instansen.
teckensnitt gimp
På ett mer tydligt sätt kan du säga att SJÄLV har följande kännetecken-
Själv: Pekare till aktuellt objekt
Jaget pekar alltid på det aktuella objektet. När du skapar en instans av en klass skapar du i huvudsak ett objekt med sin egen uppsättning attribut och metoder.
Python3
class> check:> >def> __init__(>self>):> >print>(>'Address of self = '>,>id>(>self>))> obj>=> check()> print>(>'Address of class object = '>,>id>(obj))> |
>
>
Produktion:
Address of self = 140273244381008 Address of class object = 140273244381008>
Exempel: Skapa klass med attribut och metoder
Denna kod definierar en Python-klasscar>representerar bilar med attributen 'modell' och 'färg'. De__init__>konstruktorn initierar dessa attribut för varje instans. Deshow>metoden visar modell och färg, medan direkt attributåtkomst och metodanrop visar instansspecifik datahämtning.
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)> |
>
c-sträng i array
>
Produktion:
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>
Själv i konstruktörer och metoder
Själv är det första argumentet som skickas in Konstruktör och Instance Method.Self måste tillhandahållas som en första parameter till Instancemetoden och konstruktorn. Om du inte tillhandahåller det kommer det att orsaka ett fel.
Python3
sortera arraylistan i 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> |
>
>
Själv: Konvention, inte nyckelord
Jaget är en konvention och inte en Python nyckelord . Self är en parameter i Instance Method och användaren kan använda ett annat parameternamn i stället för det. Men det är tillrådligt att använda sig själv eftersom det ökar läsbarheten av kod, och det är också en bra programmeringspraxis.
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()> |
>
>
Produktion:
we have used another parameter name in place of self>