Maven_super_31_100_Python_51_65 - itnett/FTD02H-N 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
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 definert i en klasse som kan manipulere objektets tilstand.
- Ressurser:
52. Class Methods
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 instansen, og de kan manipulere klassevariabler.
- Ressurser:
53. Static Methods
class MyClass:
@staticmethod
def static_method():
return "This is a static method"
print(MyClass.static_method())
- Forklaring: Statisk metoder er metoder som ikke har tilgang til hverken instans- eller klassevariabler, men fungerer som vanlige funksjoner.
- 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 arve metoder og egenskaper fra en annen klasse.
- 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 ulikt basert på hvilken objekt den blir kalt på.
- 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 beskytter en klasse sin interne tilstand og forhindrer uautorisert tilgang.
- 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 skjuler komplekse implementeringsdetaljer og viser bare nødvendige funksjoner.
- Ressurser:
58. File Handling - Reading
with open('file.txt', 'r') as file:
content = file.read()
print(content)
- Forklaring: Åpner en fil for lesing, leser innholdet, og skriver det ut.
- Ressurser:
59. File Handling - Writing
with open('file.txt', 'w') as file:
file.write("Hello, World!")
- Forklaring: Åpner en fil for skriving, skriver tekst til filen.
- Ressurser:
60. File Handling - Appending
with open('file.txt', 'a') as file:
file.write("\nNew line")
- Forklaring: Åpner en fil i tillegg-modus og legger til tekst på slutten.
- Ressurser:
61. Error Handling - Try/Except
try:
print(10 / 0)
except ZeroDivisionError:
print("You cannot divide by zero!")
- Forklaring: Brukes for å håndtere feil i koden uten å avslutte programmet.
- Ressurser:
62. Error Handling - Finally
try:
print(10 / 0)
except ZeroDivisionError:
print("You cannot divide by zero!")
finally:
print("This block is always executed.")
- Forklaring:
finally
-blokken kjøres uansett om en feil oppstår eller ikke. - Ressurser:
63. Error Handling - Else
try:
result = 10 / 2
except ZeroDivisionError:
print("You cannot divide by zero!")
else:
print("No errors occurred.")
- Forklaring:
else
-blokken kjøres hvis ingen feil oppstår itry
-blokken. - Ressurser:
64. Custom Exceptions
class CustomError(Exception):
pass
try:
raise CustomError("This is a custom error")
except CustomError as e:
print(e)
- Forklaring: Oppretter og håndterer egendefinerte unntak.
- Ressurser:
65. Logging
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("This
Her er en fortsettelse av de neste 15 Python-konseptene, fra og med nummer 51 til 65. Hver kommando eller funksjon er forklart, og det er gitt eksempler og lenker til ressurser som kan hjelpe deg med å forstå hvert tema i dybden.
### 51. **Instance Methods**
```python
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:
52. Class Methods
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
with open('file.txt', 'r') as file:
content = file.read()
print(content)
- 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
with open('file.txt', 'w') as file:
file.write("Hello, World!")
- 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
with open('file.txt', 'a') as file:
file.write("\nNew line")
- 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
try:
print(10 / 0)
except ZeroDivisionError:
print("You cannot divide by zero!")
- 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
try:
print(10 / 0)
except ZeroDivisionError:
print("You cannot divide by zero!")
finally:
print("This block is always executed.")
- 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: