Vad är själv i Python: exempel från verkliga världen

När du skriver klasser i Python kan du ofta stöta på termen 'self.'Det är ett avgörande koncept som nybörjare måste förstå när de dyker djupare in i objektorienterade funktioner i programmeringsspråket Python.

Parametern selfhänvisar till den aktuella instansen av en klass. Du kan använda den för att komma åt de attribut och metoder som hör till den klassen.

I denna Python-handledning kommer vi att utforska hur selfvariabeln spelar en avgörande roll i Python-klasser. Vi kommer också att visa dig hur du upprätthåller kodtydlighet, modularitet och återanvändbarhet genom att använda self.

Innehållsförteckning

Att förstå sig själv i Python

Python är ett objektorienterat programmeringsspråk (OOP) som är starkt beroende av klasser och objekt. Så innan vi dyker in i selfparametern måste vi först förstå vad objektorienterad programmering är.

Objektorienterad programmering i Python

Vad är själv i Python: exempel från verkliga världenKritaskrivning – OOP, Objektorienterad 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="Vad är själv 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="(maxbredd: 709px) 100vw, 709px">

Objektorienterad programmering hjälper programmerare att modellera verkliga koncept och relationer genom att använda klasser och objekt. Detta resulterar i kod som är mer strukturerad, återanvändbar och skalbar.

Tänk på en klass som en mall för att skapa objekt med fördefinierade egenskaper och metoder. Ett objekt är också en instans av en klass som lagrar sina egna värden för attributen och har tillgång till klassfunktioner.

Dessa två koncept är en viktig byggsten i många tillämpningar. Du kan se både klasser och objekt i arbete i den här videon om hur man enkelt skapar data med Python Faker Library.

Python-jagets roll

Self är en referens till instansen av klassen i Python. Det låter dig komma åt och ändra attributen och metoderna för en klass inom dess eget omfång.

Här är några viktiga punkter om användningen av self i Python:

  • Selfär inte ett reserverat nyckelord i Python-syntaxen . Du kan använda andra namn för att identifiera klassinstanser men selfär den mest använda och accepterade konventionen av Python-programmerare.
  • Selfanvänds som den första parametern i instansmetoder för att referera till den aktuella instansen av klassen.
  • Du kan använda selfför att skilja mellan instansattribut och lokala variabler, vilket gör din kod mer läsbar och mindre buggig.
  • När du anropar en instansmetod skickar Python automatiskt instansen som den första parametern.
  • Du måste deklarera selfparametern i __init__() konstruktorn och alla andra efterföljande funktionskonstruktörer i din klass. Om du inte gör det kommer ditt program att kasta en typeerror.

    Du kan se ett exempel på detta fel nedan:

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

Obs: Du kan komma runt med self parametern i funktioner genom att använda den statiska metodfunktionen som Python 3 tillhandahåller. Vi kommer att gå in mer i detalj på det i ett senare avsnitt.

Att arbeta med sig själv

Vad är själv i Python: exempel från verkliga världen

Att lära sig hur man använder self är mycket viktigt för att bygga klasser i Python. I det här avsnittet kommer du att lära dig hur du använder self i olika scenarier när du arbetar med klasser och objekt.

Initiera objekt med '__init__()'

Vad är själv i Python: exempel från verkliga världen

När du skapar en ny instans av en klass __init__() anropas metoden för att initiera objektets attribut. Metoden __init__() är klasskonstruktorn och den tar self parametern som sitt första argument.

Parametern selfanvänds inom denna metod för att associera instansattributen med de givna argumenten.

Här är ett exempel:

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

I det här exemplet tar metoden , , och som parametrar under objektets initiering. Parametern hänvisar till klassinstansen, vilket gör att du kan ställa in attributen och för det specifika objekt som skapas. init selfnameageself nameage

Att använda sig själv i metoder

När du definierar instansmetoder i en klass bör du inkludera self som den första parametern. Detta låter dig komma åt instansattributen och andra metoder inom klassen.

Låt oss utöka det föregående exemplet:

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 det här exemplet introduce()inkluderar metoden selfsom sin första parameter. Detta gör att du kan komma åt objektets namn och åldersattribut och skapa en personlig introduktion.

När du anropar metoden i din kod behöver du inte skicka parametern self explicit. Python tar hand om det automatiskt.

Genom att följa dessa riktlinjer och förstå syftet med selfi kan nybörjare effektivt arbeta med klasser och objekt. Detta låter dem skapa välstrukturerad kod som är lätt att läsa och underhålla.

Vanliga fall för självanvändning

Vad är själv i Python: exempel från verkliga världen

Det finns många sätt du kan använda nyckelordet i din Python-kod. Genom att förstå dessa användningsfall kommer du att kunna använda effektivt i dina program. self self

Låt oss titta på några av dem:

Få åtkomst till klassattribut

En primär användning av selfär att komma åt instansattribut inom en klass. Instansattribut är specifika för ett objekt som skapats från klassen och lagrar objektets data.

Genom att använda selfkan du manipulera eller komma åt dessa attribut inom klassmetoder. Låt oss titta på ett exempel:

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 det här exemplet använde vi self för att komma åt namnattributet för ett Dog-objekt i metoden display_name .

Calling Class Methods

Ett annat vanligt användningsfall av selfär att anropa andra klassmetoder inifrån en instansmetod. Detta gör att du kan återanvända kod, minska komplexiteten och förbättra läsbarheten.

Det är viktigt att använda selfnär man hänvisar till andra metoder, eftersom det säkerställer att rätt metod anropas för den specifika instansen. Tänk på följande exempel:

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 exemplet ovan använder vi selfför att anropa show_speciesmetoden inifrån show_infometoden. Detta gör att vi kan visa fågelns art och färg i ett enda samtal.

Slutligen, kom ihåg att använda selfnär du kommer åt instansattribut och anropar klassmetoder. När du väl förstår dessa användningsfall kommer du att kunna skriva mer effektiv och organiserad Python-kod.

Bästa självpraxis

Vad är själv i Python: exempel från verkliga världen

När du arbetar med self,finns det några konventioner du måste följa för att undvika problem och buggar i din kod. Här är några av dem.

Var man använder sig själv

När du definierar instansmetoder, använd alltid selfparametern som den första parametern. Detta låter dig komma åt och ändra objektets instansattribut och anropa andra instansmetoder inom klassen.

Det är viktigt att använda selfnär man arbetar med objektinstanser i Python. Att använda det säkerställer konsekvent beteende och möjliggör korrekt inkapsling av objekt.

Tänk till exempel på följande klass:

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

Här används self-parametern i metoden __init__ för att initiera my_var objektförekomstens attribut. På så sätt blir ett instansspecifikt attribut. my_var

Som ett resultat kan den nås och ändras med hjälp av självreferens i andra metoder i klassen.

Namnkonventioner för sig själv

Även om selfdet är det konventionella namnet som används för instansen i Python, kan du tekniskt sett använda vilket namn du vill. Det rekommenderas dock starkt att du håller dig till att använda dig själv för klarhet och konsekvens med det bredare Python-communityt.

Att använda ett annat namn kan orsaka förvirring för dem som läser och arbetar med din kod, speciellt om de är vana vid vanliga namnkonventioner i Python-bibliotek.

Var man inte ska använda sig själv

Vi vet redan att selfparametern ger åtkomst till objektinstansen. I vissa fall kanske vissa funktioner i klassen inte kräver åtkomst till objektinstansen.

I det här scenariot behövs inte självparametern. Så, Python tillhandahåller en statisk metodfunktion för att kringgå självparametern:

Här är ett exempel:

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

I exemplet ovan @staticmethodåsidosätter funktionsdekoratören selfparameterkravet i metoden. På så sätt kommer funktionen fortfarande att köras även om det inte finns någon objektinstans som skickas in i den.

Slutsats

Vad är själv i Python: exempel från verkliga världen

Sammanfattningsvis hänvisar självparametern i Python till instansen av en klass och låter dig komma åt dess attribut och metoder. Som Python-utvecklare är det viktigt att förstå syftet med jaget och dess användning i klasser och objekt.

Genom att använda sig själv konsekvent i din kod främjar du läsbarhet och underhållbarhet, vilket förbättrar den övergripande kvaliteten på ditt arbete.

Kom också ihåg att även om du kanske ser termen "self"som används ofta i Python, är det inte ett reserverat Python-sökord. Detta skiljer sig från programmeringsspråk som Javascript och Java , där "this" är ett reserverat nyckelord.

Du kan namnge den första parametern i en klassmetod vad du vill; " self" är bara den föredragna konventionen.

Är själv ett nyckelord i Python? 

Det finns en fråga som alltid svävar bland Python-programmerare. Är själv verkligen ett nyckelord i Python? 

Till skillnad från andra programmeringsspråk som C++, där själv anses vara ett nyckelord, är det i Python en konvention som programmerare tenderar att följa. Det är i grunden en parameter i en metoddefinition. Däremot kan du använda vilket annat namn som helst istället för dig själv som ett annat eller jag eller något annat för den första parametern i en metod. En annan anledning till att det föreslås av de flesta är att det förbättrar läsbarheten för din kod. 

Låt oss se ett exempel för att förstå det: 

class myClass:   def show(another):   print(”en annan används istället för jaget”)  

Om du jämför den här koden med koden för Python-klassens självkonstruktor kommer du att märka att vi här har använt namnet ett annat i plats för själv. Låt oss nu skapa ett objekt av den här klassen och se resultatet: 

object = myClass()   object.show()

Du kan se att programmet fungerar även om vi använder något annat namn i stället för självvariabeln. Det fungerar precis på samma sätt som självvariabeln gör. 


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.