Update Python Object Oriented Programming

2025-03-18 13:31:14 +01:00
parent a1d79ea1ef
commit c9b06ac81b

@@ -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())
```