Skip to content
Programmeren in Python, leer de nieuwste technieken
Programmeren in PythonProgrammeren in Python
  • Home
  • Blog
  • Documentatie
  • Cursussen
Programmeren in PythonProgrammeren in Python
  • Home
  • Blog
  • Documentatie
  • Cursussen

Introductie

4
  • 1.1 Wat is Python?
  • 1.2 Python installatie
  • 1.2.1 Python installeren voor MacOS
  • 1.3 PyCharm Installatie

Basisprogrammering

6
  • 2.1 Python Basis: Variabelen, Datatypes en Operatoren
  • 2.2 Python if else (en elif)
  • 2.3 Python list (Array, Lijsten)
  • 2.4 Python Lussen: for loop, while loop, break, continue
  • 2.5 Python Functies: Definities, Parameters en Terugkeerwaarden
  • 2.6 Foutafhandeling: try, except, else, finally

Datatypes

13
  • 3.1 Introductie tot Geavanceerde Datatypes
  • 3.2 Python Tuple
  • 3.3 Python Set
  • 3.4 Python Dictionary
  • 3.5 Werken met Strings en String-methoden
  • 3.6 Collections Module: Krachtige Tools in Python
  • 3.7 Iterators en Generators
  • 3.8 List Comprehensions
  • 3.9 Geavanceerde Sortering
  • 3.10 Werken met Multi-dimensionale Data
  • 3.11 Typing en Datatypes
  • 3.12 Itertools voor Geavanceerde Iteraties
  • 3.13 Data Conversies

Modules

8
  • 4.1 Wat zijn Modules en Waarom zijn ze Belangrijk?
  • 4.2 Werken met Ingebouwde Modules
  • 4.3 Installeren en Gebruiken van Externe Pakketten
  • 4.4 Eigen Modules Maken
  • 4.5 Introductie tot Pakketten
  • 4.6 Importeren en Namespaces Begrijpen
  • 4.7 Geavanceerd: Relatief Importeren
  • 4.8 Organiseren van Grotere Projecten

Data Analyse

3
  • 5.1 Python Dataframe en Data Opschonen met Pandas
  • 5.2 Python Pandas Basisstatistieken en Data-analyse
  • 5.3 Python Numpy (NpArray): De Kracht van Numerieke Berekeningen

Webontwikkeling

5
  • 7.1 Inleiding tot Webontwikkeling
  • 7.2 HTTP-Verzoeken met requests: Communiceren met het Web
  • 7.3 Webscraping met BeautifulSoup: Data van het Web Halen als er geen APIs zijn
  • 7.4 Python Flask, een webserver & API tutorial
  • 7.5 WSGI & WebOb

Deploy

1
  • Deploy met Supervisor op Ubuntu

Object Georiënteerd Programmeren

8
  • Wat is Objectgeoriënteerd Programmeren (OOP) in Python?
  • Python class & object maken
  • self en __init__ uitgelegd (met voorbeelden)
  • Attributen afschermen: @property (getters/setters)
  • Overerving in Python + super() (en wanneer je het beter níet doet)
  • Dunder methods: __str__, __repr__, vergelijken (en waarom dit je OOP-code “Pythonic” maakt)
  • @dataclass: snelle nette classes (minder boilerplate, meer duidelijkheid)
  • OOP in de praktijk: design & structuur
View Categories
  • Home
  • Documentatie
  • Modules
  • 4.6 Importeren en Namespaces Begrijpen

4.6 Importeren en Namespaces Begrijpen

4 minuten leestijd

Wanneer je met Python werkt, gebruik je vaak code die in andere bestanden of modules staat. Dit proces heet importeren. Het stelt je in staat om gebruik te maken van kant-en-klare functies, klassen, en variabelen zonder dat je ze zelf opnieuw hoeft te schrijven. Maar hoe werkt dit precies? En wat gebeurt er onder de motorkap met de variabelen en functies die je importeert? Dat gaan we in dit hoofdstuk ontdekken! 🚀

Hoe werkt importeren? #

In Python kun je met het trefwoord import externe modules of pakketten in je project laden. Dit maakt hun functies, klassen, en variabelen beschikbaar in je script.

1. Gebruik van import #

Met import laad je een hele module. Om functies of variabelen uit de module te gebruiken, moet je de naam van de module vermelden.

Voorbeeld:

import math

# Gebruik een functie uit de math-module
print(math.sqrt(16))  
# Toont: 4.0
print(math.pi)        
# Toont: 3.141592653589793
Python

2. Gebruik van from ... import ... #

Soms wil je alleen specifieke functies of variabelen importeren uit een module. Met from ... import ... kun je dit doen. Hierdoor hoef je de modulenaam niet te vermelden bij het gebruik van de functie.

Voorbeeld:

from math import sqrt, pi

print(sqrt(16))  
# Toont: 4.0
print(pi)        
# Toont: 3.141592653589793
Python

  • Voordeel: Kortere en overzichtelijkere code.
  • Nadeel: Het kan onduidelijk zijn waar een functie vandaan komt als je code groeit.

3. Gebruik van aliassen met as #

Met aliassen kun je een module of functie een kortere of meer contextuele naam geven. Dit is vooral handig bij lange modulenaam of bij overlappende namen.

Voorbeeld:

import math as m

print(m.sqrt(16))  
# Toont: 4.0
print(m.pi)        
# Toont: 3.141592653589793
Python

Je kunt ook functies een alias geven:

from math import sqrt as vierkantswortel

print(vierkantswortel(25))  
# Toont: 5.0
Python

Wat is een namespace? #

Een namespace is een soort container waarin Python namen (zoals variabelen, functies, en klassen) opslaat en aan hun waarden koppelt. Elke variabele of functie in Python leeft in een namespace.

Voorbeelden van namespaces: #

  1. Lokale namespace:
    Deze bevat namen die worden aangemaakt in een functie of blok.
  2. Globale namespace:
    Deze bevat namen die in een module worden gedefinieerd.
  3. Bouwstenen (built-in) namespace:
    Deze bevat standaardnamen die overal in Python beschikbaar zijn, zoals len() en print().

Voorbeeld: Lokale en globale namespaces

x = 10  # Globale variabele

def voorbeeld():
    x = 5  # Lokale variabele
    print(f"Lokale x: {x}")

voorbeeld()
print(f"Globale x: {x}")
Python

Uitvoer:

Lokale x: 5
Globale x: 10
Python

Hier zie je dat de lokale en globale x in verschillende namespaces bestaan en elkaar niet beïnvloeden.

Het belang van gescheiden namespaces #

Gescheiden namespaces zorgen ervoor dat functies, variabelen en modules elkaar niet per ongeluk overschrijven. Dit is vooral belangrijk bij het importeren van modules met overlappende functies.

Voorbeeld: Overlappende functies importeren #

Stel dat je zowel de sqrt-functie uit de math module als de sqrt-functie uit de cmath module wilt gebruiken. Beide modules hebben een sqrt-functie, maar ze doen niet hetzelfde:

  • math.sqrt werkt alleen met niet-negatieve getallen.
  • cmath.sqrt werkt met complexe getallen.

Met aliassen kun je beide functies duidelijk onderscheiden.

Codevoorbeeld:

from math import sqrt
from cmath import sqrt as complex_sqrt

print(sqrt(16))           
# Toont: 4.0 (werkt met niet-negatieve getallen)
print(complex_sqrt(-16))  
# Toont: 4j (werkt met complexe getallen)
Python

Waarom is dit belangrijk? #

Als je beide functies zonder alias zou importeren, overschrijft de laatst geïmporteerde functie de eerste. Door namespaces te gebruiken, kun je conflicten vermijden.

Tips voor effectief gebruik van namespaces en importeren #

  1. Gebruik aliassen verstandig:
    Kies duidelijke en korte aliassen om je code leesbaar te houden.
import numpy as np
Python
  1. Vermijd from module import *:
    Dit importeert alles uit een module en kan je namespace vervuilen. Hierdoor weet je niet meer waar een bepaalde functie of variabele vandaan komt.

    Niet aanbevolen:
from math import *
print(sqrt(16))  
# Maar waar komt sqrt vandaan?
Python
  1. Gebruik absolute imports voor leesbaarheid:
    Importeer modules met hun volledige pad om duidelijk te maken waar ze vandaan komen.
  1. Gebruik relatieve imports binnen pakketten:
    Binnen pakketten kun je relatieve imports gebruiken om specifieke onderdelen te laden zonder de volledige padnaam.

Samenvatting #

Namespaces en importeren zijn fundamentele concepten in Python die je helpen om je code overzichtelijk, leesbaar en foutbestendig te maken. Door slim gebruik te maken van importopties en gescheiden namespaces kun je conflicten vermijden en eenvoudig werken met meerdere modules en functies.

Experimenteer met import, from ... import ..., en aliassen om te zien hoe deze tools je programmeren eenvoudiger maken. Met een goed begrip van namespaces ben je klaar om grote en complexe projecten te bouwen! 🚀🎉

Updated on december 23, 2024

What are your Feelings

4.5 Introductie tot Pakketten4.7 Geavanceerd: Relatief Importeren
Inhoudsopgave
  • Hoe werkt importeren?
    • 1. Gebruik van import
    • 2. Gebruik van from ... import ...
    • 3. Gebruik van aliassen met as
  • Wat is een namespace?
    • Voorbeelden van namespaces:
  • Het belang van gescheiden namespaces
    • Voorbeeld: Overlappende functies importeren
    • Waarom is dit belangrijk?
  • Tips voor effectief gebruik van namespaces en importeren
  • Samenvatting
Programmeren in Python

Leer python op je eigen tempo met mooie interactieve hedendaagse voorbeelden.

© Copyright 2026 Programmeren in Python.
Sign inSign up

Sign in

Don’t have an account? Sign up
Lost your password?

Sign up

Already have an account? Sign in