Mikä on itse Pythonissa: Esimerkkejä tosielämästä

Pythonilla luokkia kirjoittaessasi saatat usein kohdata termin 'self.'Se on tärkeä käsite, joka aloittelijoiden on ymmärrettävä, kun he sukeltavat syvemmälle Python-ohjelmointikielen olio-ominaisuuksiin.

Parametri selfviittaa luokan nykyiseen esiintymään. Sen avulla voit käyttää kyseiseen luokkaan kuuluvia määritteitä ja menetelmiä.

Tässä Python-opetusohjelmassa tutkimme, kuinka selfmuuttujalla on keskeinen rooli Python-luokissa. Näytämme myös, kuinka koodin selkeyttä, modulaarisuutta ja uudelleenkäytettävyyttä ylläpidetään käyttämällä self.

Sisällysluettelo

Itsen ymmärtäminen Pythonissa

Python on Object-Oriented Programming (OOP) -kieli, joka on vahvasti riippuvainen luokista ja objekteista. Joten ennen kuin sukeltaa parametriin self, meidän on ensin ymmärrettävä, mitä olio-ohjelmointi on.

Olio-ohjelmointi Pythonissa

Mikä on itse Pythonissa: Esimerkkejä tosielämästäLiitukirjoitus – OOP, olioohjelmointi "data-medium-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg" data- large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="lazy" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Mikä on Self Pythonissa." class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" sizes="(max-width: 709px) 100vw, 709px">

Olio-ohjelmointi auttaa ohjelmoijia mallintamaan reaalimaailman käsitteitä ja suhteita luokkien ja objektien avulla. Tämä johtaa koodiin, joka on jäsennellympää, uudelleenkäytettävää ja skaalautuvampaa.

Ajattele luokkaa mallina, jolla luodaan objekteja ennalta määritetyillä ominaisuuksilla ja menetelmillä. Lisäksi objekti on luokan esiintymä, joka tallentaa omat arvonsa attribuuteille ja jolla on pääsy luokkatoimintoihin.

Nämä kaksi konseptia ovat tärkeä rakennuspalikka monissa sovelluksissa. Voit nähdä sekä luokat että objektit työssään tässä videossa Tietojen luomisesta helposti Python Faker -kirjastolla.

Python Selfin rooli

Self on viittaus luokan esiintymään Pythonissa. Sen avulla voit käyttää ja muokata luokan attribuutteja ja menetelmiä sen omassa laajuudessa.

Tässä on muutamia keskeisiä kohtia Pythonissa self :

  • Selfei ole varattu avainsana Python-syntaksissa . Voit käyttää muita nimiä luokkaesiintymien tunnistamiseen, mutta selfse on Python-ohjelmoijien yleisimmin käyttämä ja hyväksymä käytäntö.
  • Selfkäytetään ensimmäisenä parametrina ilmentymämenetelmissä viittaamaan luokan nykyiseen ilmentymään.
  • Voit käyttää selferottamaan esiintymän attribuutit ja paikalliset muuttujat, mikä tekee koodistasi luettavamman ja vähemmän bugisen.
  • Kutsuttaessa ilmentymämenetelmää Python välittää ilmentymän automaattisesti ensimmäisenä parametrina.
  • Sinun on ilmoitettava selfparametri konstruktorissa __init__() ja kaikissa muissa luokkasi myöhemmissä funktiokonstruktoreissa. Jos näin ei tehdä, ohjelmasi heittää typeerror.

    Voit nähdä esimerkin tästä virheestä alla:

class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given

Huomautus: Voit kiertää self parametrin käyttämisen funktioissa käyttämällä Python 3:n tarjoamaa staattista menetelmäominaisuutta. Käsittelemme sitä tarkemmin myöhemmässä osiossa.

Työskentely Itsen kanssa

Mikä on itse Pythonissa: Esimerkkejä tosielämästä

Käytön oppiminen self on erittäin tärkeää Pythonin luokkien rakentamisessa. Tämän osan aikana opit käyttämään self eri skenaarioita luokkien ja objektien kanssa työskennellessäsi.

Objekteja alustetaan komennolla '__init__()'

Mikä on itse Pythonissa: Esimerkkejä tosielämästä

Luokan uutta ilmentymää luotaessa menetelmää __init__() kutsutaan alustamaan objektin attribuutit. Metodi __init__() on luokan konstruktori, ja se ottaa self parametrin ensimmäisenä argumenttina.

Parametria selfkäytetään tässä menetelmässä esiintymän attribuuttien liittämiseen annettuihin argumenteihin.

Tässä on esimerkki:

class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)

Tässä esimerkissä menetelmä käyttää , ja parametreja objektin alustuksen aikana. Parametri viittaa luokkainstanssiin, jonka avulla voit asettaa määritteet ja tietylle luotavalle objektille. init selfnameageself nameage

Itsensä käyttäminen menetelmissä

Kun määrität instanssimenetelmiä luokassa, sinun tulee sisällyttää self se ensimmäisenä parametrina. Tämän avulla voit käyttää esiintymän attribuutteja ja muita luokan menetelmiä.

Laajennamme edellistä esimerkkiä:

class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()

Tässä esimerkissä menetelmä introduce()sisältää selfensimmäisenä parametrina. Näin pääset käsiksi kohteen nimeen ja ikämääritteisiin ja voit luoda yksilöllisen esittelyn.

Kun kutsut koodissasi olevaa menetelmää, sinun ei tarvitse välittää parametria self eksplisiittisesti. Python huolehtii siitä automaattisesti.

Noudattamalla näitä ohjeita ja ymmärtämällä sovelluksen tarkoituksen selfaloittelijat voivat työskennellä tehokkaasti luokkien ja objektien kanssa. Näin he voivat luoda hyvin jäsenneltyä koodia, jota on helppo lukea ja ylläpitää.

Yleisiä itsekäyttötapauksia

Mikä on itse Pythonissa: Esimerkkejä tosielämästä

Voit käyttää avainsanaa Python-koodissasi monella tapaa . Kun ymmärrät nämä käyttötapaukset, voit hyödyntää niitä tehokkaasti ohjelmissasi. self self

Katsotaanpa joitain niistä:

Luokan attribuuttien käyttö

Yksi ensisijainen käyttötarkoitus selfon käyttää esiintymän attribuutteja luokan sisällä. Ilmentymän attribuutit ovat ominaisia ​​luokasta luodulle objektille ja tallentavat objektin tiedot.

Käyttämällä avulla selfvoit käsitellä tai käyttää näitä attribuutteja luokkametodeissa. Katsotaanpa esimerkkiä:

class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)

Tässä esimerkissä käytimme self Dog-objektin name-attribuuttia menetelmässä display_name .

Soittoluokkamenetelmät

Toinen yleinen käyttötapaus selfon kutsua muita luokkamenetelmiä instanssimenetelmän sisältä. Näin voit käyttää koodia uudelleen, vähentää monimutkaisuutta ja parantaa luettavuutta.

Sitä on välttämätöntä käyttää self, kun viitataan muihin menetelmiin, koska se varmistaa, että oikea menetelmä kutsutaan tietylle esiintymälle. Harkitse seuraavaa esimerkkiä:

class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)

Yllä olevassa esimerkissä käytämme menetelmän selfkutsumista menetelmän show_speciessisältä show_info. Näin voimme näyttää linnun lajin ja värin yhdellä puhelulla.

Lopuksi muista käyttää, selfkun käytät ilmentymän attribuutteja ja kutsut luokkamenetelmiä. Kun ymmärrät nämä käyttötapaukset, voit kirjoittaa tehokkaampaa ja järjestelmällisempää Python-koodia.

Parhaat omat käytännöt

Mikä on itse Pythonissa: Esimerkkejä tosielämästä

Kun työskentelet self,joidenkin käytäntöjen kanssa, sinun on noudatettava välttääksesi ongelmia ja virheitä koodissasi. Tässä muutama niistä.

Missä käyttää itseään

Kun määrität ilmentymämenetelmiä, käytä aina selfparametria ensimmäisenä parametrina. Tämän avulla voit käyttää ja muokata objektin ilmentymän attribuutteja ja kutsua muita instanssimenetelmiä luokassa.

Sitä on tärkeää käyttää, selfkun työskentelet Pythonin objektiinstanssien kanssa. Sen käyttäminen varmistaa johdonmukaisen toiminnan ja mahdollistaa oikean objektin kapseloinnin.

Harkitse esimerkiksi seuraavaa luokkaa:

class MyClass: def __init__(self, my_var): self.my_var = my_var

Tässä menetelmässä itseparametria käytetään objektiinstanssin attribuutin __init__ alustamiseen . my_var Tällä tavalla siitä tulee ilmentymäkohtainen attribuutti. my_var

Tämän seurauksena sitä voidaan käyttää ja muokata käyttämällä itseviittausta luokan muissa menetelmissä.

Nimeämiskäytännöt itselle

Vaikka selfkyseessä on Pythonissa esiintymän tavanomainen nimi, voit teknisesti käyttää mitä tahansa haluamaasi nimeä. On kuitenkin erittäin suositeltavaa, että käytät itseäsi selkeyden ja johdonmukaisuuden vuoksi laajemman Python-yhteisön kanssa.

Toisen nimen käyttäminen saattaa aiheuttaa hämmennystä niille, jotka lukevat ja työskentelevät sen kanssa, varsinkin jos he ovat tottuneet Python-kirjastojen vakionimeämiskäytäntöihin.

Missä ei saa käyttää itseään

Tiedämme jo, että selfparametri tarjoaa pääsyn objektiinstanssiin. Joissakin tapauksissa jotkin luokan funktiot eivät kuitenkaan välttämättä vaadi pääsyä objektiinstanssiin.

Tässä skenaariossa itseparametria ei tarvita. Python tarjoaa siis staattisen menetelmäominaisuuden itseparametrin ohittamiseksi:

Tässä on esimerkki:

class Car: @staticmethod def print_car(): print('Vroom Vroom')

Yllä olevassa esimerkissä @staticmethodfunktion koristelu ohittaa selfmenetelmän parametrivaatimuksen. Tällä tavalla funktio toimii edelleen, vaikka siihen ei olisi siirretty objektiinstanssia.

Johtopäätös

Mikä on itse Pythonissa: Esimerkkejä tosielämästä

Yhteenvetona voidaan todeta, että Pythonin self-parametri viittaa luokan esiintymään ja antaa sinun käyttää sen attribuutteja ja menetelmiä. Python-kehittäjänä on tärkeää ymmärtää itsen tarkoitus ja sen käyttö luokissa ja objekteissa.

Käyttämällä itseään johdonmukaisesti koodissasi edistät luettavuutta ja ylläpidettävyyttä, mikä parantaa työsi yleistä laatua.

Muista myös, että vaikka saatat nähdä termiä "self"usein käytettynä Pythonissa, se ei ole varattu Python-avainsana. Tämä eroaa ohjelmointikielistä, kuten Javascript ja Java , joissa "this" on varattu avainsana.

Voit nimetä luokkametodin ensimmäisen parametrin haluamallasi tavalla; " self" on vain suositeltu sopimus.

Onko itse avainsana Pythonissa? 

Python-ohjelmoijien keskuudessa leijuu aina kysymys. Onko itse todella avainsana Pythonissa? 

Toisin kuin muut ohjelmointikielet, kuten C++, joissa itseä pidetään avainsanana, Pythonissa ohjelmoijat yleensä noudattavat käytäntöä. Se on pohjimmiltaan parametri menetelmän määrittelyssä. Voit kuitenkin käyttää mitä tahansa muuta nimeä itsesi sijaan, kuten toista tai minä tai jotain muuta menetelmän ensimmäiselle parametrille. Toinen syy, miksi useimmat ihmiset ehdottavat sitä, on se, että se parantaa koodisi luettavuutta. 

Katsotaanpa esimerkkiä sen ymmärtämiseksi: 

class myClass:   def show(toinen):   print("toista käytetään itsen sijaan"  

Jos vertaat tätä koodia Python-luokan itsekonstruktorin koodiin, huomaat, että olemme käyttäneet tässä nimeä toisessa  paikka itsen. Luodaan nyt tämän luokan objekti ja katsotaan tulos: 

objekti = myClass()   object.show()

Näet, että ohjelma toimii, vaikka käytämme jotain muuta nimeä itsemuuttujan tilalla. Se toimii täsmälleen samalla tavalla kuin itsemuuttuja. 


Suhde- ja taajuustaulukot Excelissä

Suhde- ja taajuustaulukot Excelissä

Aioin sukeltaa Excelin taajuustaulukoihin sekä suhteellisiin taulukoihin. Selvitä, mitä ne ovat ja milloin niitä käytetään.

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Opi lataamaan ja asentamaan DAX Studio ja Tabular Editor 3 ja miten ne määritetään käytettäväksi LuckyTemplatesissa ja Excelissä.

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

Tämä blogi sisältää Shape Map -visualisoinnin tilaanalyysiä varten LuckyTemplatesissa. Näytän sinulle, kuinka voit käyttää tätä visualisointia tehokkaasti sen ominaisuuksien ja elementtien kanssa.

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.

Tehokkain toimintopuhelu LuckyTemplatesissa

Tehokkain toimintopuhelu LuckyTemplatesissa

Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.

Datamallinnustekniikat DAX-mittausten järjestämiseen

Datamallinnustekniikat DAX-mittausten järjestämiseen

Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.

Power Queryn kielivirran parhaat käytännöt

Power Queryn kielivirran parhaat käytännöt

Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.