Table of Contents
Moduler
Vi kan importere python moduler.
I Python, betragtes alle *.py filer som moduler. Dette så vi, da vi lærte om 'if __name__ == "__main__":' tidligere.
Et modul kan enten være en enkeltfil, som vi har som en del af vores projekt. Eller det kan være en større eller mindre samling af klasser og funktioner.
Standard moduler
Python har en masse standard moduler, som man ikke behøver at installere.
Her er en liste, af nogle af de mest almindelige.
- os : Navigering i filsystem samt andre system funktioner.
- sys : System funktionalitet
- math : Matematiske operationer (pi, trigonometri etc.)
- datetime : Dato og tid
- random : Generering af vilkårlige (random) tal og data
- json : Arbejde med JSON data
- time : Forsinkelse (pauser) i programmet
Alle disse moduler kan importeres direkte.
Installation af ikke standard moduler
Sådanne moduler skal installeres før du kan bruge dem.
Det første modul, vi installerer, er pygame.
- Åben en kommandoprompt/terminal
- Skriv som følger
> python -m pip install pygame
modulet er nu installeret, og klar til brug.
Alle moduler installeres på samme måde.
> python -m pip install "modulnavn"
Det er kun et spørgsmål om den funktionalitet du skal bruge allerede findes i et modul. Eller om du skal skrive dit modul selv.
Import af moduler
Vi kan vælge enten at importere hele modulet (alt er tilgængeligt) eller kun at importere de klasser/funktioner vi skal bruge.
Hvis vi vil importere hele modulet, gøres det sådan.
import time
if __name__ = "__main__":
time.sleep(1) # Kald funktionel sleep(), fra modulet 'time'. Vent 1 sekund.
print("Tiden er gået!")
På denne måde er alle klasser og kunktioner tilgængelig for dit program.
Hvis du kun skal bruge noget af modulets funktionalitet, gøres det bedst, sådan her.
from time import sleep
if __name__ = "__main__":
sleep(1) # Kald funktionel sleep(). Vent 1 sekund.
print("Tiden er gået!")
Nu er det kun sleep() funktionen vi har adgang til. Og da vi allerede har fortalt, hvor funktionen kommer fra, kan vi kalde den uden brug af dot-notation (time.sleep()).
Modul alias
Ligeledes kan man give moduler alias navne, i Python. Dette gøres på denne måde. moduler/json1.py
import json as JS
if __name__ == "__main__":
file = open("data.json", "r") # Vi åbner filen "data.json"
data = JS.load(file) # Vi behandler filens indhold som json data
file.close() # Vi lukker filen, efter brug, for at undgå memory leaks (bugs)
print(data) # Vi printer json data.
> python json1.py
{'person': [{'navn': 'Shubham', 'email': 'ksingh.shubh@gmail.com', 'job_profil': 'intern'}, {'navn': 'Gaurav', 'email': 'gaurav.singh@gmail.com', 'job_profil': 'developer'}, {'navn': 'Nikhil', 'email': 'nikhil@geeksforgeeks.org', 'job_profil': 'Full Time'}]}
>
Dette bringer os til en anden vigtig ting. Når man åbner en fil, skal man huske at lukke den igen. Ellers risikerer man at filen bliver ødelegt, eller man introducerer bugs. Dette åbne/lukke system har Python allerede en løsning på. Dette kaldes context manager og bruges sådan her. moduler/json2.py
import json as JS # Vi opretter en konstant, ved navn **JS** med værdien *json*.
if __name__ = "__main__":
with open("data.json", "r") as file: # Dette er 'context manager' - Når vi forlader 'with'-blokken, lukkes filen (open() - close()) automatisk.
data = JS.load(file)
# Når programmet når hertil, er filen lukket igen!
print(data)
> python json2.py
{'person': [{'navn': 'Shubham', 'email': 'ksingh.shubh@gmail.com', 'job_profil': 'intern'}, {'navn': 'Gaurav', 'email': 'gaurav.singh@gmail.com', 'job_profil': 'developer'}, {'navn': 'Nikhil', 'email': 'nikhil@geeksforgeeks.org', 'job_profil': 'Full Time'}]}
>
Vi ved nu det grundlæggende omkring moduler😃
