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. 

Leave a Comment

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.

Oprettelse af en datotabel i LuckyTemplates

Oprettelse af en datotabel i LuckyTemplates

Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.

Professionelle serviceanalyserapporter i LuckyTemplates

Professionelle serviceanalyserapporter i LuckyTemplates

I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.

Almindelige SQL-funktioner: En oversigt

Almindelige SQL-funktioner: En oversigt

Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.

LuckyTemplates skabelonoprettelse: Guide og tips

LuckyTemplates skabelonoprettelse: Guide og tips

I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.

LuckyTemplates-rangering og brugerdefineret gruppering

LuckyTemplates-rangering og brugerdefineret gruppering

I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.