Hva er selv i Python: Eksempler fra den virkelige verden

Når du skriver klasser i Python, kan du ofte støte på begrepet 'self.'Det er et avgjørende konsept som nybegynnere må forstå når de dykker dypere inn i objektorienterte funksjoner i programmeringsspråket Python.

Parameteren selfrefererer til gjeldende forekomst av en klasse. Du kan bruke den til å få tilgang til attributtene og metodene som tilhører den klassen.

I denne Python-opplæringen skal vi utforske hvordan selfvariabelen spiller en sentral rolle i Python-klasser. Vi vil også vise deg hvordan du opprettholder kodeklarhet, modularitet og gjenbrukbarhet gjennom bruk av self.

Innholdsfortegnelse

Forstå selvet i Python

Python er et objektorientert programmeringsspråk (OOP) som er sterkt avhengig av klasser og objekter. Så før vi dykker inn i selfparameteren, må vi først forstå hva objektorientert programmering er.

Objektorientert programmering i Python

Hva er selv i Python: Eksempler fra den virkelige verdenKritskriving – OOP, Objektorientert programmering " 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="lat" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Hva er Self i Python." 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="(maks-bredde: 709px) 100vw, 709px">

Objektorientert programmering hjelper programmerere med å modellere virkelige konsepter og relasjoner gjennom bruk av klasser og objekter. Dette resulterer i kode som er mer strukturert, gjenbrukbar og skalerbar.

Tenk på en klasse som en mal for å lage objekter med forhåndsdefinerte egenskaper og metoder. Et objekt er også en forekomst av en klasse som lagrer sine egne verdier for attributtene og har tilgang til klassefunksjoner.

Disse to konseptene er en viktig byggestein i mange applikasjoner. Du kan se både klasser og objekter på jobb i denne videoen om hvordan du enkelt kan lage data med Python Faker Library.

Rollen til Python Self

Self er en referanse til forekomsten av klassen i Python. Den lar deg få tilgang til og endre attributtene og metodene til en klasse innenfor dens eget omfang.

Her er noen viktige punkter om bruken av self i Python:

  • Selfer ikke et reservert nøkkelord i Python-syntaksen . Du kan bruke andre navn for å identifisere klasseforekomster, men selfer den mest brukte og aksepterte konvensjonen av Python-programmerere.
  • Selfbrukes som den første parameteren i instansmetoder for å referere til gjeldende instans av klassen.
  • Du kan bruke selftil å skille mellom instansattributter og lokale variabler, noe som gjør koden din mer lesbar og mindre buggy.
  • Når du kaller en forekomstmetode, sender Python automatisk forekomsten som den første parameteren.
  • Du må deklarere selfparameteren i __init__() konstruktøren og alle andre påfølgende funksjonskonstruktører i klassen din. Unnlatelse av å gjøre det vil føre til at programmet ditt kaster en typeerror.

    Du kan se et eksempel på denne feilen nedenfor:

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

Merk: Du kan komme deg rundt ved å bruke self parameteren i funksjoner ved å bruke den statiske metodefunksjonen som Python 3 gir. Vi vil gå nærmere inn på det i et senere avsnitt.

Arbeide med seg selv

Hva er selv i Python: Eksempler fra den virkelige verden

Å lære å bruke self er veldig viktig for å bygge klasser i Python. Gjennom denne delen vil du lære hvordan du kan bruke self i forskjellige scenarier når du arbeider med klasser og objekter.

Initialisere objekter med '__init__()'

Hva er selv i Python: Eksempler fra den virkelige verden

Når du oppretter en ny forekomst av en klasse, __init__() kalles metoden for å initialisere objektets attributter. Metoden __init__() er klassekonstruktøren, og den tar parameteren self som sitt første argument.

Parameteren selfbrukes i denne metoden for å knytte instansattributtene til de gitte argumentene.

Her er et eksempel:

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

I dette eksemplet tar metoden , , og som parametere under objektets initialisering. Parameteren refererer til klasseforekomsten, slik at du kan angi attributtene og for det spesifikke objektet som opprettes. init selfnameageself nameage

Bruke selv i metoder

Når du definerer forekomstmetoder i en klasse, bør du inkludere self som den første parameteren. Dette lar deg få tilgang til forekomstattributtene og andre metoder i klassen.

La oss utvide det forrige eksemplet:

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

I dette eksemplet introduce()inkluderer metoden selfsom sin første parameter. Dette lar deg få tilgang til objektets navn og aldersattributter og lage en personlig introduksjon.

Når du kaller metoden i koden din, trenger du ikke å sende parameteren self eksplisitt. Python tar seg av det automatisk.

Ved å følge disse retningslinjene og forstå formålet med selfi , kan nybegynnere effektivt arbeide med klasser og objekter. Dette lar dem lage godt strukturert kode som er enkel å lese og vedlikeholde.

Vanlige tilfeller av selvbruk

Hva er selv i Python: Eksempler fra den virkelige verden

Det er mange måter du kan bruke nøkkelordet i Python-koden din. Ved å forstå disse brukstilfellene vil du kunne bruke effektivt i programmene dine. self self

La oss se på noen av dem:

Få tilgang til klasseattributter

En primær bruk av selfer å få tilgang til instansattributter i en klasse. Forekomstattributter er spesifikke for et objekt opprettet fra klassen og lagrer objektets data.

Ved å bruke selfkan du manipulere eller få tilgang til disse attributtene innenfor klassemetoder. La oss se på et eksempel:

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)

I dette eksemplet brukte vi self å få tilgang til navneattributtet til et Dog-objekt i metoden display_name .

Calling Class Methods

Et annet vanlig brukstilfelle av selfer å kalle andre klassemetoder fra en instansmetode. Dette lar deg gjenbruke kode, redusere kompleksiteten og forbedre lesbarheten.

Det er viktig å bruke selfnår du refererer til andre metoder, da det sikrer at den riktige metoden kalles for den spesifikke forekomsten. Tenk på følgende eksempel:

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)

I eksemplet ovenfor bruker vi selfå kalle show_speciesmetoden fra metoden show_info. Dette gjør oss i stand til å vise fuglens art og farge i et enkelt rop.

Til slutt, husk å bruke selfnår du får tilgang til instansattributter og kaller klassemetoder. Når du forstår disse brukstilfellene, vil du kunne skrive mer effektiv og organisert Python-kode.

Beste selvpraksis

Hva er selv i Python: Eksempler fra den virkelige verden

Når du jobber med self,er det noen konvensjoner du må følge for å unngå problemer og feil i koden din. Her er noen av dem.

Hvor du kan bruke selv

Når du definerer forekomstmetoder, bruk alltid selfparameteren som den første parameteren. Dette lar deg få tilgang til og endre objektets instansattributter og kalle andre instansmetoder i klassen.

Det er viktig å bruke selfnår du arbeider med objektforekomster i Python. Bruk av den sikrer konsistent oppførsel og gir mulighet for riktig objektinnkapsling.

Tenk for eksempel på følgende klasse:

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

Her brukes self-parameteren i __init__ metoden for å initialisere my_var attributtet til objektforekomsten. På denne måten blir et instansspesifikt attributt. my_var

Som et resultat kan den nås og endres ved å bruke selvreferansen i andre metoder i klassen.

Navnekonvensjoner for seg selv

Mens selfer det konvensjonelle navnet som brukes for forekomsten i Python, kan du teknisk sett bruke hvilket som helst navn du vil. Imidlertid anbefales det sterkt at du holder deg til å bruke deg selv for klarhet og konsistens med det bredere Python-fellesskapet.

Å bruke et annet navn kan føre til forvirring for de som leser og arbeider med koden din, spesielt hvis de er vant til standard navnekonvensjoner i Python-biblioteker.

Hvor du ikke skal bruke selv

Vi vet allerede at selfparameteren gir tilgang til objektforekomsten. Men i noen tilfeller kan det hende at enkelte funksjoner i klassen ikke krever tilgang til objektforekomsten.

I dette scenariet er selvparameteren ikke nødvendig. Så, Python gir en statisk metodefunksjon for å omgå selvparameteren:

Her er et eksempel:

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

I eksemplet ovenfor @staticmethodoverstyrer funksjonsdekoratoren parameterkravet selfi metoden. På denne måten vil funksjonen fortsatt kjøre selv om det ikke er noen objektforekomst sendt inn i den.

Konklusjon

Hva er selv i Python: Eksempler fra den virkelige verden

Oppsummert refererer selvparameteren i Python til forekomsten av en klasse og lar deg få tilgang til dens attributter og metoder. Som Python-utvikler er det viktig å forstå hensikten med selvet og bruken av det i klasser og objekter.

Ved å bruke self konsekvent i koden din fremmer du lesbarhet og vedlikeholdsvennlighet, noe som forbedrer den generelle kvaliteten på arbeidet ditt.

Husk også at selv om du kanskje ser begrepet "self"brukt ofte i Python, er det ikke et reservert Python-søkeord. Dette skiller seg fra programmeringsspråk som Javascript og Java , hvor "this" er et reservert nøkkelord.

Du kan navngi den første parameteren i en klassemetode hva du vil; " self" er bare den foretrukne konvensjonen.

Er selv et nøkkelord i Python? 

Det er et spørsmål som alltid svever blant Python-programmerere. Er selv virkelig et nøkkelord i Python? 

I motsetning til andre programmeringsspråk som C++, der selv anses å være et nøkkelord, er det i Python en konvensjon som programmerere har en tendens til å følge. Det er i utgangspunktet en parameter i en metodedefinisjon. Du kan imidlertid bruke et hvilket som helst annet navn i stedet for deg selv som et annet eller meg eller noe annet for den første parameteren til en metode. En annen grunn til at det er foreslått av de fleste er at det forbedrer lesbarheten til koden din. 

La oss se et eksempel for å forstå det: 

class myClass:   def show(other):   print(“en annen brukes i stedet for seg selv”)  

Hvis du sammenligner denne koden med koden for Python-klassens selvkonstruktør, vil du legge merke til at her har vi brukt navnet en annen i stedet for selv. La oss nå lage et objekt av denne klassen og se utdataene: 

object = myClass()   object.show()

Du kan se at programmet fungerer selv om vi bruker et annet navn i stedet for selvvariabelen. Det fungerer nøyaktig på samme måte som selvvariabelen gjør. 


PowerApps-søkefelt: Slik legger du til og tilpasser

PowerApps-søkefelt: Slik legger du til og tilpasser

Lær hvordan du oppretter et PowerApps-søkefelt fra bunnen av og tilpasser det til å matche det overordnede temaet for appen din.

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

Høst eller fang en verdi inne i et mål for å gjenbruke i et annet mål for dynamiske beregninger ved å bruke SELECTEDVALUE DAX i LuckyTemplates.

Versjonshistorikk i SharePoint-lister

Versjonshistorikk i SharePoint-lister

Oppdag hvordan versjonshistorikk i SharePoint kan hjelpe deg med å se utviklingen av bestemte data, og hvor mange endringer den har gjennomgått.

Hex-fargekodevelger for Lucky Templates-rapporter

Hex-fargekodevelger for Lucky Templates-rapporter

Her er et verktøy for å lage rapporter og grafikk, en sekskantkodevelger for farger som du kan bruke for enkelt å få fargene til LuckyTemplates-rapportene dine.

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Du kan enkelt vise en datoperiode som en slicer i rapporten ved hjelp av en periodetabell. Bruk en M-kode for å lage den dynamiske datoskjæreren i LuckyTemplates.

Proporsjons- og frekvenstabeller i Excel

Proporsjons- og frekvenstabeller i Excel

Skulle dykke ned i frekvenstabeller i Excel samt proporsjonstabeller. Se nærmere på hva de er og når du skal bruke dem.

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Lær hvordan du laster ned og installerer DAX Studio og Tabular Editor 3 og hvordan du konfigurerer dem for bruk i LuckyTemplates og i Excel.

LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.