From 563eb29c83782994318570285b3da6152c320306 Mon Sep 17 00:00:00 2001 From: Lerking Date: Tue, 18 Mar 2025 07:29:09 +0100 Subject: [PATCH] Update Python Object Oriented Programming --- Python-Object-Oriented-Programming.md | 29 ++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/Python-Object-Oriented-Programming.md b/Python-Object-Oriented-Programming.md index eeff913..4c165b9 100644 --- a/Python-Object-Oriented-Programming.md +++ b/Python-Object-Oriented-Programming.md @@ -10,7 +10,7 @@ Dette gøres med en speciel metode **\__init__(self):** Denne methode køres, med de parametre der nu er defineret, til at indgå i oprettelsen af et objekt af klassen. Opret en ny fil. ```python -class firkant: +class Firkant: def __init__(self, lg: int, br: int): self.laengde = lg self.bredde = br @@ -21,7 +21,7 @@ I **\__init__(self, lg: int, br: int)** metoden, opretter vi 2 variabler (*self. Nu laver vi en ny metode, til udregning af arealet for en firkant. ```python -class firkant: +class Firkant: def __init__(self, lg: int, br: int): self.laengde = lg self.bredde = br @@ -31,7 +31,7 @@ class firkant: ``` ```python -class firkant: +class Firkant: def __init__(self, lg: int, br: int): self.laengde = lg self.bredde = br @@ -39,7 +39,7 @@ class firkant: def areal(self): return self.laengde * self.bredde -min_firkant = firkant(10, 10) +min_firkant = Firkant(10, 10) print("Arealet er:", min_firkant.areal()) ``` Gem filen som firkant.py @@ -48,4 +48,23 @@ Kør skriptet. > python firkant.py Arealet er: 100 > -``` \ No newline at end of file +``` +## Inheritance (nedarving) +Python klasser kan arve hinandens funktionalitet - d.v.s. at den nye klasse får forældreklassens variabler og metoder. +Vi vi nu lave en klasse - **kube** som arver fra **firkant**. På samme tid vil vi begynde at se på import, og vigtigheden af at kontrollere hvornår python udfører kode. +Vi starter med en ny fil - **kube.py** +```python +import firkant # Vi importerer firkant.py filen + +class Kube(Firkant): # Vi opretter en ny klasse - **kube**, som arver **firkant**'s funktionalitet. + def __init__(self, lg:int, br:int ho: int): + Super.__init__(lg, br) # Vi initialiserer **firkant**, med værierne *lg* og *br*. Dette gøres med den specielle funktion **Super**, som refererer til den arvede klasse. + self.hojde = ho + + def rumfang(self): + return self.laengde * self.bredde * self.hojde + +min_kube = Kube(10, 10, 10) # De 3 værdier er **lg**, **br**, **ho** - Alle sat til 10. +print("Rumfang :", min.kube.rumfang) +``` + \ No newline at end of file