Maven_super_31_100_Python_51_65 - itnett/FTD02N GitHub Wiki
Her er en videreføring av listen med de neste 15 Python-konseptene, fra og med nummer 51. Hvert konsept har en forklaring, et kodeeksempel, og lenker til ressurser som vil hjelpe deg å forstå emnet bedre.
51. Instance Methods
- Forklaring: Instansmetoder er funksjoner definert i en klasse som kan manipulere objektets tilstand.
- Ressurser:
52. Class Methods
- Forklaring: Klassemetoder er metoder som er bundet til klassen og ikke instansen, og de kan manipulere klassevariabler.
- Ressurser:
53. Static Methods
- Forklaring: Statisk metoder er metoder som ikke har tilgang til hverken instans- eller klassevariabler, men fungerer som vanlige funksjoner.
- Ressurser:
54. Inheritance
- Forklaring: Arv lar en klasse arve metoder og egenskaper fra en annen klasse.
- Ressurser:
55. Polymorphism
- Forklaring: Polymorfisme lar en funksjon eller metode oppføre seg ulikt basert på hvilken objekt den blir kalt på.
- Ressurser:
56. Encapsulation
- Forklaring: Innkapsling beskytter en klasse sin interne tilstand og forhindrer uautorisert tilgang.
- Ressurser:
57. Abstraction
- Forklaring: Abstraksjon skjuler komplekse implementeringsdetaljer og viser bare nødvendige funksjoner.
- Ressurser:
58. File Handling - Reading
- Forklaring: Åpner en fil for lesing, leser innholdet, og skriver det ut.
- Ressurser:
59. File Handling - Writing
- Forklaring: Åpner en fil for skriving, skriver tekst til filen.
- Ressurser:
60. File Handling - Appending
- Forklaring: Åpner en fil i tillegg-modus og legger til tekst på slutten.
- Ressurser:
61. Error Handling - Try/Except
- Forklaring: Brukes for å håndtere feil i koden uten å avslutte programmet.
- Ressurser:
62. Error Handling - Finally
- Forklaring:
finally
-blokken kjøres uansett om en feil oppstår eller ikke. - Ressurser:
63. Error Handling - Else
- Forklaring:
else
-blokken kjøres hvis ingen feil oppstår itry
-blokken. - Ressurser:
64. Custom Exceptions
- Forklaring: Oppretter og håndterer egendefinerte unntak.
- Ressurser:
65. Logging
Se skriptet herpython class MyClass: def init(self, name): self.name = name
def greet(self):
return f"Hello, {self.name}"
obj = MyClass("John") print(obj.greet())
- **Forklaring:** Instansmetoder er funksjoner som er definert i en klasse og som kan manipulere objektets tilstand. De blir vanligvis kalt på et objekt som er en instans av klassen.
- **Ressurser:**
- [Real Python - Instance Methods](https://realpython.com/python3-object-oriented-programming/#instance-methods)
- [W3Schools - Python Classes](https://www.w3schools.com/python/python_classes.asp)
### 52. **Class Methods**
```python
class MyClass:
@classmethod
def class_method(cls):
return "This is a class method"
print(MyClass.class_method())
- Forklaring: Klassemetoder er metoder som er bundet til klassen og ikke til instansen. De har tilgang til klasseattributter, men ikke til instansattributter.
- Ressurser:
53. Static Methods
class MyClass:
@staticmethod
def static_method():
return "This is a static method"
print(MyClass.static_method())
- Forklaring: Statisk metoder er funksjoner som ikke har tilgang til hverken instans- eller klasseattributter. De er som vanlige funksjoner, men de er bundet til en klasse.
- Ressurser:
54. Inheritance
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
return f"{self.name} makes a noise"
class Dog(Animal):
def speak(self):
return f"{self.name} barks"
dog = Dog("Fido")
print(dog.speak())
- Forklaring: Arv lar en klasse (subklasse) arve metoder og egenskaper fra en annen klasse (superklasse). Dette muliggjør gjenbruk av kode.
- Ressurser:
55. Polymorphism
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Bark"
class Cat(Animal):
def speak(self):
return "Meow"
for animal in (Dog(), Cat()):
print(animal.speak())
- Forklaring: Polymorfisme lar en funksjon eller metode oppføre seg forskjellig basert på hvilken objekt den blir kalt på. Dette betyr at samme metode kan ha forskjellige implementasjoner i forskjellige klasser.
- Ressurser:
56. Encapsulation
class MyClass:
def __init__(self, name):
self.__name = name
def get_name(self):
return self.__name
obj = MyClass("John")
print(obj.get_name())
- Forklaring: Innkapsling er prosessen med å beskytte tilstanden til en objekt ved å gjøre data private og tilgjengelige bare via offentlige metoder. Dette sikrer at data ikke kan endres direkte utenfor klassen.
- Ressurser:
57. Abstraction
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def sound(self):
pass
class Dog(Animal):
def sound(self):
return "Bark"
dog = Dog()
print(dog.sound())
- Forklaring: Abstraksjon er prosessen med å skjule detaljer og vise bare essensielle funksjoner. Dette oppnås i Python ved å bruke abstrakte klasser som ikke kan instansieres og som krever at subklasser implementerer bestemte metoder.
- Ressurser:
58. File Handling - Reading
- Forklaring: Python gjør det enkelt å åpne og lese filer. Her åpner vi en fil i lesemodus (
'r'
), leser innholdet og skriver det ut. - Ressurser:
59. File Handling - Writing
- Forklaring: Denne koden åpner en fil i skrivetilstand (
'w'
), som vil overskrive innholdet i filen med den nye teksten "Hello, World!". - Ressurser:
60. File Handling - Appending
- Forklaring: Denne koden åpner en fil i tilleggstilstand (
'a'
), som legger til ny tekst på slutten av filen i stedet for å overskrive den. - Ressurser:
61. Error Handling - Try/Except
- Forklaring:
try
- ogexcept
-blokkene brukes til å fange opp feil som kan oppstå under kjøring, og håndtere dem uten å krasje programmet. - Ressurser:
62. Error Handling - Finally
- Forklaring:
finally
-blokken kjøres alltid, uavhengig av om en feil har oppstått eller ikke. Dette er nyttig for opprydning, som å lukke filer. - Ressurser:
63. Error Handling - Else
try:
result = 10 / 2
except ZeroDivisionError:
print("You cannot divide by zero!")
else: