Denna artikel kommer att hjälpa läsaren att förstå de grundläggande Python-klasserna tillsammans med några grundläggande tillämpningar i verkliga livet. Vi kommer att använda Visual Studio Code som vår kodredigerare. Om du inte har installerat Visual Studio Code, finns instruktionerna i den första bloggen.
Python-klasser och objekt – innehållsförteckning:
- Python-klasser
- Python-klasser – definition
- Initiering av Python-klasser
- Låt oss skriva vår första Python-klass
- Attribut
- Klassens beteende
- Objekt i Python
- Arv
Python-klasser
Som vi har diskuterat i den första bloggen är Python ett objektorienterat programmeringsspråk. Det finns tre fraser som är mycket viktiga när man diskuterar objektorienterad programmering i Python. Den första är klass, den andra är ett objekt, den tredje är arv. Låt oss börja med vad en klass är.
Python-klasser – definition
En klass är en ritning eller ett utbyggbart program som hjälper till vid skapandet av objekt. En klass består av beteende och tillstånd. Beteendet hos en klass demonstreras genom funktioner inuti klassen som kallas metoder. Tillståndet för klassen demonstreras med hjälp av variabler inuti klassen som kallas attribut.
Initiering av Python-klasser
En klass kan initieras med följande syntax.
En klass i Python definieras med nyckelordet “class” följt av klassnamnet. Den grundläggande syntaxen för en Python-funktion illustreras nedan.
Till exempel:
<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" /> # Skapa en funktion # klass Apa class classname:
Obs: klassnamnet har också samma normer som variabeldeklarationen.
Låt oss skriva vår första Python-klass
# första klass class Djur: pass
I den ovanstående kodblocket har vi skrivit en klass som vi kommer att utveckla vidare i bloggen. Som du kan se har vi använt nyckelordet “class”.
Låt oss nu se hur man lägger till komponenter till djurklassen. Men innan dess låt oss lära oss om “__init__()” konstruktorn. Konstruktörer används för objektinstansiering. Här används __init__() för objektinstansiering. Konstruktorn kan vara standard med endast self som argument eller parametriserad med nödvändiga argument.
Attribut
Det finns två olika typer av attribut, de första är klassvariabler och de andra är instansvariabler. Klassvariablerna är de variabler som ägs av klassen. Dessutom är dessa variabler tillgängliga för alla instanser av klassen. Därför kommer deras värde inte att ändras även om instansen ändras.
# klassvariabler class Djur: type=”däggdjur”
Instansvariablerna är de variabler som tillhör instanserna själva. Därför kommer de att ändra sitt värde när instansen ändras.
# klassvariabler class Djur: def __init__(self,ben): self.ben=ben
Obs: Instansvariabler är inte tillgängliga för åtkomst med klassnamnet, eftersom de ändras beroende på vilket objekt som får åtkomst till dem.
Låt oss göra ett program som har både klass- och instansvariabler deklarerade.
class Djur: type=”däggdjur” def __init__(self,namn,ben): self.namn=namn self.ben=ben
I det ovanstående programmet har vi använt både instans- och klassvariabler. Så dessa variabler utgör attributen för klassen.
Klassens beteende
Som diskuterats definieras klassens beteende av metoderna inuti klassen. Men innan vi går in på diskussionen om beteende måste vi börja diskutera “self”-parametern, som vi använde i __init__().
Self:
I mycket enkla termer, när vi fäster något till self säger det att variabeln eller funktionen tillhör den klassen. Dessutom kan attributen eller metoderna i klassen nås med “self”.
Metoder:
Klassmetoder är funktioner inuti klassen som har sitt första argument som “self”. En metod inuti klassen definieras med nyckelordet “def”.
class Djur: type=”däggdjur” def __init__(self,namn,ben): self.namn=namn self.ben=ben def skälla(self): if self.namn==”hund”: print(“voff voff!!!”) else: print(“inte en hund”)
I den ovanstående metoden “skälla”, eftersom vi använder variabeln namn, som är en instansvariabel, får vi åtkomst till den med “self” och denna funktion skulle skriva ut “voff voff!!!”, endast om namnet som ges till objektet är hund.
Vi har diskuterat de flesta komponenterna i en klass, men du kanske undrar hur man ser om klassen fungerar. Svaret på detta är att om vi inte skapar ett objekt av klassen, kommer vi inte att kunna se vad klassen gör. Nu, låt oss definiera och skapa ett objekt av klassen.
Objekt i Python
Ett objekt är en instans av klassen. En klass är bara en ritning, men objektet är en instans av klassen som har faktiska värden.
Koden för att definiera eller skapa ett objekt illustreras nedan.
class Djur: type=”däggdjur” def __init__(self,namn,ben): self.namn=namn self.ben=ben def skälla(self): if self.namn==”hund”: print(“voff voff!!!”) else: print(“inte en hund”) hund=Djur(“hund”,4)
För att skapa ett objekt är syntaxen objektetsnamn=klassnamn(argument). Därför ger vi här namnet på djuret som hund och antalet ben som 4. Nu, objektet av klassen är skapat, nästa steg är att använda objektet för att få åtkomst till dess attribut. För att få åtkomst till attributen i en klass med hjälp av objektet, kom ihåg att endast instansvariabler kan nås med hjälp av objektet. Instansvariablerna i vår klass är namn och ben.
class Djur: type=”däggdjur” def __init__(self,namn,ben): self.namn=namn self.ben=ben def skälla(self): if self.namn==”hund”: print(“voff voff!!!”) else: print(“inte en hund”) hund=Djur(“hund”,4) print(hund.namn) print(hund.ben)
Som vi kan se kan vi få åtkomst till instansvariabler med hjälp av punktnotation.
Låt oss utforska utdata.
#Utdata hund 4
För att få åtkomst till funktionerna inuti klassen eller metoderna kommer vi att använda punktnotation. Exemplet illustreras nedan.
class Djur: type=”däggdjur” def __init__(self,namn,ben): self.namn=namn self.ben=ben def skälla(self): if self.namn==”hund”: print(“voff voff!!!”) else: print(“inte en hund”) hund=Djur(“hund”,4) print(hund.namn) print(hund.ben) print(hund.skälla())
#Utdata hund 4 voff voff!!!
I det ovanstående exemplet kan vi se att vi får åtkomst till klassmetoden “skälla” med hjälp av hundobjektet vi skapade. Vi kan se att vi inte använder “self”-parametern i funktionsargumenten. Detta beror på att vi inte behöver använda “self” utanför klassen eftersom objektet självt fungerar som self.
Arv
Arv är en process genom vilken klassens attribut och metoder kan överföras till en underklass. Klassen från vilken underklassen ärver är föräldraklassen. Syntaxen för arv illustreras nedan.
#Arv class förälder: class barn(förälder):
Från den ovanstående illustrationen kan vi se att för arvsyntaxen placerar vi föräldraklassens namn som ett argument till underklassen. Låt oss använda Djur-klassen och göra en underklass som kallas hund. Detta illustreras nedan.
class Djur: type=”däggdjur” def __init__(self,namn,ben): self.namn=namn self.ben=ben def skälla(self): if self.namn==”hund”: print(“voff voff!!!”) else: print(“inte en hund”) class Hund(Djur): def __init__(self,namn,ben,race): Djur.__init__(self,namn,ben) self.race=race
I den ovanstående exempel koden har vi skapat en hundklass som utökar djurklassen som vi skapade tidigare. Vi använder också parametrarna från Djur med hjälp av Djur.__init__(argument) som har namn och ben som kommer att ärvas till hundklassen. Sedan skapar vi en instansattribut för hundklassen som är race.
Nu låt oss skapa ett objekt för hundklassen och få åtkomst till attributen och metoderna i djurklassen.
class Djur: type=”däggdjur” def __init__(self,namn,ben): self.namn=namn self.ben=ben def skälla(self): if self.namn==”hund”: print(“voff voff!!!”) else: print(“inte en hund”) class Hund(Djur): def __init__(self,namn,ben,race): Djur.__init__(self,namn,ben) self.race=race pug=Hund("hund",4,"pug") pug.race pug.namn pug.ben pug.skälla()
#Utdata pug hund 4 voff voff!!!
Som vi kan se från utdata får underklassens objekt åtkomst till föräldraklassens attribut och metoder.
I den här bloggen har vi täckt några grunder i klasser i Python. I den nästa blogginlägget kommer vi att täcka ämnet filhantering.
Du kanske också gillar vår JavaScript-kurs från nybörjare till avancerad.
Robert Whitney
JavaScript-expert och instruktör som coachar IT-avdelningar. Hans huvudmål är att höja teamets produktivitet genom att lära andra hur man effektivt samarbetar medan man kodar.
Python Course From Beginner to Advanced in 11 blog posts:
- Python-tupler, listor, mängder och ordböcker. Del 3 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Python-funktioner. Del 7 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Introduktion till Python-kurs. Del 1 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Variabler och datatyper i Python. Del 2 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Python-mängder och ordböcker. Del 4 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Python-klasser och objekt. Del 9 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Filer i Python. Del 10 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Loopar i Python. Del 6 Python-kurs från nybörjare till avancerad på 11 blogginlägg
- Avancerade funktioner i Python. Del 8 Python-kurs från nybörjare till avancerad på 11 blogginlägg