Hvad er selv i Python: Eksempler fra den virkelige verden

Når du skriver klasser i Python, kan du ofte støde på udtrykket 'self.'Det er et afgørende koncept, som begyndere skal forstå, når de dykker dybere ned i objektorienterede funktioner i Python-programmeringssproget.

Parameteren selfrefererer til den aktuelle forekomst af en klasse. Du kan bruge det til at få adgang til de attributter og metoder, der hører til den pågældende klasse.

I denne Python-tutorial vil vi undersøge, hvordan selfvariablen spiller en central rolle i Python-klasser. Vi viser dig også, hvordan du opretholder kodeklarhed, modularitet og genbrugelighed ved at bruge self.

Indholdsfortegnelse

Forstå selvet i Python

Python er et objektorienteret programmeringssprog (OOP) , der er stærkt afhængig af klasser og objekter. Så før vi dykker ned i selfparameteren, skal vi først forstå, hvad objektorienteret programmering er.

Objektorienteret programmering i Python

Hvad er selv i Python: Eksempler fra den virkelige verdenKridtskrivning – OOP, Objektorienteret 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="doven" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Hvad er selv 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="(max-width: 709px) 100vw, 709px">

Objektorienteret programmering hjælper programmører med at modellere virkelige begreber og relationer gennem brug af klasser og objekter. Dette resulterer i kode, der er mere struktureret, genbrugelig og skalerbar.

Tænk på en klasse som en skabelon til at skabe objekter med foruddefinerede egenskaber og metoder. Et objekt er også en forekomst af en klasse, der gemmer sine egne værdier for attributterne og har adgang til klassefunktioner.

Disse to koncepter er en vigtig byggesten i mange applikationer. Du kan se både klasser og objekter i arbejde i denne video om, hvordan du nemt opretter data med Python Faker Library.

Python-selvets rolle

Self er en reference til forekomsten af ​​klassen i Python. Det giver dig mulighed for at få adgang til og ændre attributterne og metoderne for en klasse inden for dens eget omfang.

Her er et par nøglepunkter om brugen af self ​​i Python:

  • Selfer ikke et reserveret nøgleord i Python-syntaksen . Du kan bruge andre navne til at identificere klasseforekomster, men selfer den mest udbredte og accepterede konvention af Python-programmører.
  • Selfbruges som den første parameter i instansmetoder til at referere til den aktuelle instans af klassen.
  • Du kan bruge selftil at skelne mellem instansattributter og lokale variabler, hvilket gør din kode mere læsbar og mindre buggy.
  • Når du kalder en instansmetode, sender Python automatisk instansen som den første parameter.
  • Du skal deklarere selfparameteren i __init__() konstruktøren og alle andre efterfølgende funktionskonstruktører i din klasse. Hvis du ikke gør det, vil dit program kaste en typeerror.

    Du kan se et eksempel på denne fejl 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

Bemærk: Du kan komme rundt med self parameteren i funktioner ved at bruge den statiske metodefunktion, som Python 3 giver. Det kommer vi nærmere ind på i et senere afsnit.

At arbejde med sig selv

Hvad er selv i Python: Eksempler fra den virkelige verden

At lære at bruge self er meget vigtigt for at bygge klasser i Python. Igennem dette afsnit lærer du, hvordan du bruger self i forskellige scenarier, når du arbejder med klasser og objekter.

Initialisering af objekter med '__init__()'

Hvad er selv i Python: Eksempler fra den virkelige verden

Når du opretter en ny instans af en klasse, __init__() kaldes metoden for at initialisere objektets attributter. Metoden __init__() er klassekonstruktøren, og den tager parameteren self som sit første argument.

Parameteren selfbruges i denne metode til at knytte instansattributterne til de givne argumenter.

Her er et eksempel:

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

I dette eksempel tager metoden , , og som parametre under objektets initialisering. Parameteren refererer til klasseinstansen, hvilket giver dig mulighed for at indstille og attributter for det specifikke objekt, der oprettes. init selfnameageself nameage

Brug af sig selv i metoder

Når du definerer instansmetoder i en klasse, skal du inkludere self som den første parameter. Dette giver dig adgang til instansattributterne og andre metoder i klassen.

Lad os udvide det forrige eksempel:

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 eksempel introduce()inkluderer metoden selfsom dens første parameter. Dette giver dig mulighed for at få adgang til objektets navn og aldersattributter og oprette en personlig introduktion.

Når du kalder metoden i din kode, behøver du ikke at videregive parameteren self eksplicit. Python tager sig af det automatisk.

Ved at følge disse retningslinjer og forstå formålet med selfi kan begyndere effektivt arbejde med klasser og objekter. Dette lader dem skabe velstruktureret kode, der er let at læse og vedligeholde.

Almindelige tilfælde af selvbrug

Hvad er selv i Python: Eksempler fra den virkelige verden

Der er mange måder, du kan bruge nøgleordet i din Python-kode. Ved at forstå disse use cases, vil du være i stand til at udnytte effektivt i dine programmer. self self

Lad os se på nogle af dem:

Adgang til klasseattributter

En primær anvendelse af selfer at få adgang til instansattributter inden for en klasse. Forekomstattributter er specifikke for et objekt oprettet fra klassen og gemmer objektets data.

Brug selflader dig manipulere eller få adgang til disse attributter inden for klassemetoder. Lad os 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 eksempel brugte vi self til at få adgang til navneattributten for et Dog-objekt i metoden display_name .

Opkaldsklassemetoder

Et andet almindeligt anvendelsestilfælde selfer at kalde andre klassemetoder inde fra en instansmetode. Dette giver dig mulighed for at genbruge kode, reducere kompleksiteten og forbedre læsbarheden.

Det er vigtigt at bruge, selfnår der henvises til andre metoder, da det sikrer, at den korrekte metode kaldes for den specifikke instans. Overvej 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 bruger vi selftil at kalde show_speciesmetoden inde fra show_infometoden. Dette gør os i stand til at vise fuglens art og farve i et enkelt kald.

Husk endelig at bruge, selfnår du får adgang til instansattributter og kalder klassemetoder. Når du forstår disse use cases, vil du være i stand til at skrive mere effektiv og organiseret Python-kode.

Bedste selvpraksis

Hvad er selv i Python: Eksempler fra den virkelige verden

Når du arbejder med, self,er der nogle konventioner, du skal følge for at undgå problemer og fejl i din kode. Her er nogle af dem.

Hvor man kan bruge selv

Når du definerer instansmetoder, skal du altid bruge selfparameteren som den første parameter. Dette giver dig mulighed for at få adgang til og ændre objektets instansattributter og kalde andre instansmetoder i klassen.

Det er vigtigt at bruge, selfnår du arbejder med objektforekomster i Python. Brug af det sikrer ensartet adfærd og giver mulighed for korrekt objektindkapsling.

Overvej for eksempel følgende klasse:

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

Her bruges selv-parameteren i __init__ metoden til at initialisere my_var objektforekomstens attribut. På denne måde bliver en instansspecifik attribut. my_var

Som et resultat kan den tilgås og ændres ved hjælp af selvreferencen i andre metoder i klassen.

Navnekonventioner for sig selv

Selvom selfdet er det konventionelle navn, der bruges til forekomsten i Python, kan du teknisk set bruge et hvilket som helst navn, du kan lide. Det anbefales dog stærkt, at du holder dig til at bruge dig selv for klarhed og sammenhæng med det bredere Python-fællesskab.

Brug af et andet navn kan forårsage forvirring for dem, der læser og arbejder med din kode, især hvis de er vant til standardnavnekonventioner i Python-biblioteker.

Hvor man ikke skal bruge selv

Vi ved allerede, at selfparameteren giver adgang til objektforekomsten. Men i nogle tilfælde kræver nogle funktioner i klassen muligvis ikke adgang til objektforekomsten.

I dette scenarie er selvparameteren ikke nødvendig. Så Python giver en statisk metodefunktion til at omgå selvparameteren:

Her er et eksempel:

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

I eksemplet ovenfor @staticmethodtilsidesætter funktionsdekoratoren parameterkravet selfi metoden. På denne måde vil funktionen stadig køre, selvom der ikke er nogen objektforekomst sendt ind i den.

Konklusion

Hvad er selv i Python: Eksempler fra den virkelige verden

Sammenfattende refererer selvparameteren i Python til forekomsten af ​​en klasse og giver dig adgang til dens attributter og metoder. Som Python-udvikler er det vigtigt at forstå formålet med sig selv og dets brug i klasser og objekter.

Ved at bruge self konsekvent i din kode, fremmer du læsbarhed og vedligeholdelse, hvilket forbedrer den overordnede kvalitet af dit arbejde.

Husk også, at selvom du måske ser udtrykket "self"brugt ofte i Python, er det ikke et reserveret Python-søgeord. Dette adskiller sig fra programmeringssprog som Javascript og Java , hvor "this" er et reserveret nøgleord.

Du kan navngive den første parameter i en klassemetode, hvad du vil; " self" er bare den foretrukne konvention.

Er selv et nøgleord i Python? 

Der er et spørgsmål, der altid svæver blandt Python-programmører. Er selv virkelig et nøgleord i Python? 

I modsætning til andre programmeringssprog som C++, hvor selv anses for at være et nøgleord, er det i Python en konvention, som programmører har en tendens til at følge. Det er dybest set en parameter i en metodedefinition. Du kan dog bruge et hvilket som helst andet navn i stedet for dig selv som et andet eller mig eller noget andet for den første parameter i en metode. En anden grund til, at det foreslås af de fleste mennesker, er, at det forbedrer læsbarheden af ​​din kode. 

Lad os se et eksempel for at forstå det: 

class myClass:   def show(other):   print(“en anden bruges i stedet for sig selv”)  

Hvis du sammenligner denne kode med koden til Python-klassens selvkonstruktør, vil du bemærke, at vi her har brugt navnet en anden i sted for selv. Lad os nu oprette et objekt af denne klasse og se outputtet: 

object = myClass()   object.show()

Du kan se, at programmet virker, selvom vi bruger et andet navn i stedet for selvvariablen. Det fungerer nøjagtigt på samme måde som selvvariablen gør. 


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.