Denne artikel vil hjælpe læseren med at forstå de grundlæggende Python-klasser sammen med nogle grundlæggende anvendelser i den virkelige verden. Vi vil bruge Visual Studio Code som vores kodeeditor. Hvis du ikke har installeret Visual Studio Code, er instruktionerne givet i den første blog.
Python-klasser og objekter – indholdsfortegnelse:
- Python-klasser
- Python-klasser – definition
- Initialisering af Python-klasser
- Lad os skrive vores første Python-klasse
- Attributter
- Adfærd af klassen
- Objekter i Python
- Arv
Python-klasser
Som vi har diskuteret i den første blog, er Python et objektorienteret programmeringssprog. Der er tre sætninger, der er meget vigtige, når man diskuterer objektorienteret programmering i Python. Den første er klasse, den anden er et objekt, den tredje vil være arv. Lad os starte med, hvad en klasse er.
Python-klasser – definition
En klasse er en skabelon eller et udvideligt program, der hjælper med oprettelsen af objekter. En klasse består af adfærd og tilstand. Adfærden af en klasse demonstreres gennem funktioner inde i klassen, som kaldes metoder. Tilstanden af klassen demonstreres ved hjælp af variabler inde i klassen, som kaldes attributter.
Initialisering af Python-klasser
En klasse kan initialiseres ved hjælp af følgende syntaks.
En klasse i Python defineres ved hjælp af “class” nøgleordet efterfulgt af klassens navn. Den grundlæggende syntaks for en Python-funktion er illustreret nedenfor.
For eksempel:
1 2 3 4 | <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" /> # Opret en funktion # klasse Monkey class classname: |
Bemærk: klassens navn har også de samme normer som variabeldeklarationen.
Lad os skrive vores første Python-klasse
1 2 3 4 | # første klasse class Animals: pass |
I den ovenstående kodeblok har vi skrevet en klasse, som vi vil udvikle videre i bloggen. Som du kan se, har vi brugt “class” nøgleordet.
Lad os nu se, hvordan man tilføjer komponenter til dyreklassen. Men før det, lad os lære om “init()” konstruktøren. Konstruktører bruges til objektinstansiering. Her bruges __init__() til objektinstansiering. Konstruktøren kan være standard med kun self som argument eller parametret med nødvendige argumenter.
Attributter
Der er to forskellige typer attributter, de første er klassevariabler, og de anden er instansvariabler. Klassevariablerne er de variabler, der ejes af klassen. Desuden er disse variabler tilgængelige for alle instanser af klassen. Derfor vil deres værdi ikke ændre sig, selvom instansen ændres.
1 2 3 4 | # klassevariabler class Animals: type=”mammals” |
Instansvariablerne er de variabler, der tilhører instanserne selv. Derfor vil de ændre deres værdi, når instansen ændres.
1 2 3 4 5 6 | # klassevariabler class Animals: def __init__(self,legs): self.legs=legs |
Bemærk: Instansvariabler er ikke tilgængelige for adgang ved hjælp af klassens navn, fordi de ændrer sig afhængigt af objektet, der tilgår det.
Lad os lave et program, der har både klasse- og instansvariabler erklæret.
1 2 3 4 5 6 | class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs |
I det ovenstående program har vi brugt både instans- og klassevariabler. Så disse variabler danner attributter af klassen.
Adfærd af klassen
Som diskuteret, defineres adfærden af klassen af metoderne inde i klassen. Men før vi går ind i diskussionen om adfærd, skal vi starte med at diskutere “self” parameteren, som vi brugte i __init__().
Self:
I meget enkle termer, når vi knytter noget til self, siger det, at variablen eller funktionen tilhører den klasse. Desuden kan attributterne eller metoderne i klassen tilgås med “self”.
Metoder:
Klassens metoder er funktioner inde i klassen, som vil have deres første argument som “self”. En metode inde i klassen defineres ved hjælp af “def” nøgleordet.
01 02 03 04 05 06 07 08 09 10 11 | class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else : print(“not a dog”) |
I den ovenstående metode “bark”, da vi bruger navnevariablen, som er en instansvariabel, tilgår vi den ved hjælp af “self”, og denne funktion ville udskrive “woof woof!!!”, kun hvis navnet givet til objektet er hund.
Vi har diskuteret de fleste komponenter af en klasse, men du tænker måske på, hvordan man ser, om klassen fungerer. Svaret på dette er, at medmindre vi opretter et objekt af klassen, vil vi ikke være i stand til at se, hvad klassen gør. Nu, lad os definere og oprette et objekt af klassen.
Objekter i Python
Et objekt er en instans af klassen. En klasse er blot en skabelon, men objektet er en instans af klassen, som har faktiske værdier.
Koden til at definere eller oprette et objekt er illustreret nedenfor.
01 02 03 04 05 06 07 08 09 10 11 12 13 | class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else : print(“not a dog”) dog=Animals(“dog”,4) |
For at oprette et objekt er syntaksen objectname=classname(arguments). Derfor giver vi her navnet på dyret til at være hund og antallet af ben til at være 4. Nu er objektet af klassen oprettet, det næste skridt er at bruge objektet til at tilgå dets attributter. For at tilgå attributterne af en klasse ved hjælp af objektet, husk at kun instansvariablerne kan tilgås ved hjælp af objektet. Instansvariablerne i vores klasse er navn og ben.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else : print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs) |
Som vi kan se, kan vi tilgå instansvariabler ved hjælp af punktnotation.
Lad os udforske output.
1 2 3 4 | #Output dog 4 |
For at tilgå funktionerne inde i klassen eller metoderne, vil vi bruge punktnotation. Eksemplet er illustreret nedenfor.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else : print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs) print(dog.bark()) |
1 2 3 4 5 | #Output dog 4 woof woof!!! |
I det ovenstående eksempel kan vi se, at vi tilgår klassens metode “bark” ved hjælp af det hundeobjekt, vi har oprettet. Vi kan se, at vi ikke bruger “self” parameteren i funktionsargumenterne. Dette skyldes, at vi ikke har brug for at bruge “self” uden for klassen, da objektet selv fungerer som self.
Arv
Arv er en proces, hvorigennem klasseattributter og metoder kan overføres til en underklasse. Klassen, hvorfra underklassen arver, er forældreklassen. Syntaksen for arv er illustreret nedenfor.
1 2 3 4 5 | #Arv class parent: class child(parent): |
Fra den ovenstående illustration kan vi se, at for arvssyntaksen placerer vi forældreklassens navn som et argument til underklassen. Lad os bruge Animals-klassen og lave en underklasse kaldet hund. Dette er illustreret nedenfor.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else : print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed |
I den ovenstående eksempelkode har vi lavet en hundeklasse, som udvider dyreklassen, som vi oprettede før. Vi bruger også parametrene fra Animals ved hjælp af Animals.__init__(arguments), som har navn og ben, som vil blive arvet til hundeklassen. Derefter laver vi en instansattribut for hundeklassen, som er race.
Nu lad os lave et objekt for hundeklassen og tilgå attributterne og metoderne fra dyreklassen.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else : print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed pug=Dog("dog",4,"pug") pug.breed pug.name pug.legs pug.bark() |
1 2 3 4 5 6 | #Output pug dog 4 woof woof!!! |
Som vi kan se fra outputtet, bliver forældreklassens attributter og metoder tilgået af underklasseobjektet.
I denne blog har vi dækket nogle grundlæggende aspekter af klasser i Python. I næste blogindlæg vil vi dække emnet filhåndtering.

Du vil måske også kunne lide vores JavaScript-kursus fra begynder til avanceret.
Robert Whitney
JavaScript-ekspert og instruktør, der coacher IT-afdelinger. Hans hovedmål er at hæve teamproduktiviteten ved at lære andre, hvordan man effektivt samarbejder, mens man koder.
Python Course From Beginner to Advanced in 11 blog posts:
- Python-tupler, lister, sæt og ordbøger. Del 3 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Python-funktioner. Del 7 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Introduktion til Python-kursus. Del 1 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Variabler og datatyper i Python. Del 2 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Python sæt og ordbøger. Del 4 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Python-klasser og -objekter. Del 9 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Filer i Python. Del 10 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Løkker i Python. Del 6 Python-kursus fra nybegynder til avanceret i 11 blogindlæg
- Avancerede funktioner i Python. Del 8 Python-kursus fra nybegynder til avanceret i 11 blogindlæg