From c9b06ac81b270069aa20ccffe2ac74b3959822f0 Mon Sep 17 00:00:00 2001 From: Lerking Date: Tue, 18 Mar 2025 13:31:14 +0100 Subject: [PATCH] Update Python Object Oriented Programming --- Python-Object-Oriented-Programming.md | 32 +++++++++++++++++++++------ 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/Python-Object-Oriented-Programming.md b/Python-Object-Oriented-Programming.md index 10121b5..b91876d 100644 --- a/Python-Object-Oriented-Programming.md +++ b/Python-Object-Oriented-Programming.md @@ -17,7 +17,7 @@ class Firkant: ``` Vi starter med at definere en klasse, ved navn **firkant**. Denne klasse får en inititialiceringsmetode, som indeholde den specielle variabel **self**, samt de parametre som skal bruges til at oprette objektet. I dette tilfælde, *lg* og *br*, begge af typen **int** - Dette kaldes type hinting. -I **\__init__(self, lg: int, br: int)** metoden, opretter vi 2 variabler (*self.laengde* og *self.bredde*), som tildeles værdierne fra *lg* og *br*. +I **\_\_init\_\_(self, lg: int, br: int)** metoden, opretter vi 2 variabler (*self.laengde* og *self.bredde*), som tildeles værdierne fra *lg* og *br*. Nu laver vi en ny metode, til udregning af arealet for en firkant. ```python @@ -26,7 +26,7 @@ class Firkant: self.laengde = lg self.bredde = br - def areal(self): + def areal(self) -> int: return self.laengde * self.bredde ``` @@ -36,7 +36,7 @@ class Firkant: self.laengde = lg self.bredde = br - def areal(self): + def areal(self) -> int: return self.laengde * self.bredde min_firkant = Firkant(10, 10) @@ -61,7 +61,7 @@ class Kube(firkant.Firkant): # Vi opretter en ny klasse - **Kube**, som arver ** 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): + def rumfang(self) -> int: 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. @@ -98,7 +98,7 @@ class Firkant: self.laengde = lg self.bredde = br - def areal(self): + def areal(self) -> int: return self.laengde * self.bredde print("Værdien af '__name__' er:", __name__) # Vi udskriver her, hvad værdien af "__name__" er. @@ -132,7 +132,7 @@ class Kube(firkant.Firkant): # Vi opretter en ny klasse - **Kube**, som arver ** 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): + def rumfang(self) -> int: return self.laengde * self.bredde * self.hojde if __name__ == "__main__": @@ -147,7 +147,7 @@ class Firkant: self.laengde = lg self.bredde = br - def areal(self): + def areal(self) -> int: return self.laengde * self.bredde # print("Værdien af '__name__' er:", __name__) # Vi udskriver her, hvad værdien af "__name__" er. @@ -163,3 +163,21 @@ Når vi nu kører **kube.py**, får vi følgende. Grundareal: 100 > ``` +En sidste ting, vi kan gøre nemmere at læse, er at rette vores import. I stedet for at importere filen, ønsker vi kun at importere klassen *Firkant*. +Vi retter kube.py. +```python +from firkant import Firkant # Vi importerer klassen Firkant, fra 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) -> int: + return self.laengde * self.bredde * self.hojde + +if __name__ == "__main__": + min_kube = Kube(10, 10, 10) # De 3 værdier er **lg**, **br**, **ho** - Alle sat til 10. + print("Rumfang:", min_kube.rumfang()) + print("Grundareal:", min_kube.areal()) +``` \ No newline at end of file