Itse edustaa luokan esiintymää. Itseä käyttämällä pääsemme käsiksi luokan attribuutteihin ja menetelmiin Python . Se sitoo attribuutit annetuilla argumenteilla. Syy sinun täytyy käyttää itseäsi. johtuu siitä, että Python ei käytä @-syntaksia viittaamaan ilmentymän attribuutteihin. Python päätti tehdä menetelmiä siten, että instanssi, johon metodi kuuluu, välitetään automaattisesti, mutta ei vastaanoteta automaattisesti: menetelmien ensimmäinen parametri on ilmentymä, johon metodia kutsutaan.
Mitä hyötyä itsestä on Pythonissa?
Kun työskentelet luokkien kanssa Pythonissa, termi self viittaa parhaillaan käytössä olevan luokan esiintymään. Itse on tapana käyttää ensimmäisenä parametrina luokan instanssimetodeissa. Aina kun kutsut a.:sta luodun objektin menetelmää luokkaa , objekti välitetään automaattisesti ensimmäisenä argumenttina käyttämällä self-parametria. Tämän avulla voit muokata objektin ominaisuuksia ja suorittaa tehtäviä, jotka ovat ainutlaatuisia kyseiselle esiintymälle.
Python 3
aakkosten numerointi
class> mynumber:> >def> __init__(>self>, value):> >self>.value>=> value> > >def> print_value(>self>):> >print>(>self>.value)> obj1>=> mynumber(>17>)> obj1.print_value()> |
>
>
Lähtö:
17>
Python-luokan itsekonstruktio
Luokkien kanssa työskennellessä on tärkeää ymmärtää, että Pythonissa luokan rakentaja on erityinen menetelmä nimeltä __kuuma__ jota kutsutaan, kun luot luokan esiintymän (objektin). Tätä menetelmää käytetään objektin attribuuttien alustamiseen. Muista, että rakentajan self-parametri viittaa luotavaan ilmentymään ja antaa sinun käyttää ja asettaa sen attribuutteja. Noudattamalla näitä ohjeita voit luoda tehokkaita ja tehokkaita luokkia Pythonissa.
Python 3
päivämäärä merkkijonoksi
class> Subject:> >def> __init__(>self>, attr1, attr2):> >self>.attr1>=> attr1> >self>.attr2>=> attr2> obj>=> Subject(>'Maths'>,>'Science'>)> print>(obj.attr1)> print>(obj.attr2)> |
>
>
Lähtö:
Maths Science>
Onko itse Pythonissa avainsana?
Ei, 'itse' ei ole avainsana Pythonissa. Self>on vain parametrin nimi, jota käytetään ilmentymämenetelmissä viittaamaan itse ilmentymään.
Selvemmällä tavalla voit sanoa, että SELFillä on seuraavat ominaisuudet:
Itse: Osoitin nykyiseen kohteeseen
Itse osoittaa aina nykyiseen kohteeseen. Kun luot luokan esiintymän, luot olennaisesti objektin, jolla on omat attribuutit ja menetelmät.
Python 3
class> check:> >def> __init__(>self>):> >print>(>'Address of self = '>,>id>(>self>))> obj>=> check()> print>(>'Address of class object = '>,>id>(obj))> |
>
>
Lähtö:
java enums
Address of self = 140273244381008 Address of class object = 140273244381008>
Esimerkki: Luokan luominen attribuuttien ja menetelmien avulla
Tämä koodi määrittelee Python-luokancar>edustavat autoja, joilla on attribuutit 'malli' ja 'väri'. The__init__>konstruktori alustaa nämä attribuutit jokaiselle esiintymälle. Theshow>metodi näyttää mallin ja värin, kun taas suora attribuuttien käyttö ja menetelmäkutsut osoittavat ilmentymäkohtaisen tiedonhaun.
Python 3
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)> |
>
>
Lähtö:
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>
Itse rakentajissa ja menetelmissä
Itse on ensimmäinen argumentti, joka välitetään Rakentaja ja Instance Method.Self on annettava Instanssimenetelmän ja -konstruktorin ensimmäisenä parametrina. Jos et anna sitä, se aiheuttaa virheen.
Python 3
# 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> |
Task Manager linux
>
>
Itse: sopimus, ei avainsana
Itse on sopimus eikä a Python-avainsana . Self on Instance Method -parametri, ja käyttäjä voi käyttää toista parametrin nimeä sen sijaan. Mutta on suositeltavaa käyttää itse, koska se lisää koodin luettavuutta ja se on myös hyvä ohjelmointikäytäntö.
Python 3
yhdistävä lajittelu
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()> |
>
>
Lähtö:
we have used another parameter name in place of self>