Python's `import` statement: Modules, namespaces & best practices

In Python is import hoe je code uit één module in een andere haalt. Het is geen "main import" — die term bestaat niet in Python. Zo werkt het eigenlijk, met de patronen die je dagelijks gebruikt.

Basale import syntax

import module_naam 

Dit laadt module_naam en bindt het aan een variabele in jouw huidige namespace. Je benadert de inhoud met puntnotatie:

 import math math.sqrt(16) # 4.0 math.pi # 3.14159... 

Algemene import patronen

1. Importeer module (Aanbevolen standaard)

 import pandas as pd import numpy as np df = pd.DataFrame({'a': [1,2,3]}) arr = np.array([1,2,3]) 

Voordelen: Expliciet, leesbaar, vermijdt naamconflicten, toont herkomst.

2. Importeer specifieke namen

 from math import sqrt, pi sqrt(16) # 4.0 — geen prefix nodig pi # 3.14159... 

Gebruik wanneer: Je gebruikt een paar namen intensief. Vermijd: from module import * (namespace vervuiling).

3. Importeer met alias

 import matplotlib.pyplot as plt import seaborn as sns 

Standaard conventies (pd, np, plt, sns, tf, torch) maken code direct leesbaar.

4. Conditionele / Lui imports

 # Importeer zware afhankelijkheden alleen wanneer nodig def analyseer_data(): import pandas as pd # Lokale import — snellere opstart als ongebruikt return pd.read_csv('data.csv') 

Hoe import onder de motorkap werkt

  1. Check sys.modules — als al geladen, return gecachte module
  2. Vind module via sys.path (huidige dir, PYTHONPATH, site-packages, stdlib)
  3. Voer modulecode uit — runt top-level statements (def, class, toewijzingen)
  4. Creëer module object — namespace voor module's globals
  5. Cache in sys.modules
  6. Bind naam in importer's namespace (per import statement)

Module zoekpad (sys.path)

 import sys sys.path # ['', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', # '/home/user/.local/lib/python3.11/site-packages', ...] 
  • '' = huidige script directory (of CWD als interactief)
  • Pakketten installeren: pip install pakket → site-packages
  • Virtual environments isoleren site-packages

Pakketten & Submodules

 import pakket.submodule from pakket import submodule from pakket.submodule import functie 

Directory met __init__.py = pakket. __init__.py kan submodules exposeren:

 # pakket/__init__.py from .submodule import publieke_functie __all__ = ['publieke_functie'] 

Algemene valkuilen & oplossingen

Best practices

  1. Standaardbibliotheek eerst, dan derden, dan lokaal — elke groep alfabetisch
  2. Eén import per regel (PEP 8)
  3. Gebruik import module boven from module import *
  4. Alias: Gebruik community standaarden (pd, np, plt, tf, torch)
  5. Vermijd runtime padmanipulatie — gebruik correcte pakketering (pyproject.toml, pip install -e .)
  6. Type checking: from __future__ import annotations + TYPE_CHECKING guards

Voorbeeld: Schone import blok

 # Standaardbibliotheek import json import os from pathlib import Path from typing import List, Optional # Derden import numpy as np import pandas as pd import requests # Lokaal from mijnproject.config import settings from mijnproject.models import User from mijnproject.utils import logger 

Python's import systeem is krachtig, expliciet, en voorspelbaar — zodra je het namespacemodel begrijpt. De gouden regel: maak het duidelijk waar elke naam vandaan komt. Je toekomstige zelf (en teamgenoten) zullen je danken.

Valuta & geldwissel
  • Vereisten voor reischeques

    Vroeger was een vaste voorbereiding voor buitenlandse reis: reischeques kopen. Deze verzekerde valuta garandeert terugbetaling bij verlies/diefstal. Beschikbaar in VS of vreemde denominaties. Betaling Voor reischeques: bedrag neerleggen. Kosten 1-4% afhankelijk van verkooppunt beleid. American Expre

  • Waar gouden kruizen te koop in New Hampshire

    Betrouwbare juweliers in New Hampshire die gouden kruizen verkopen: The Gold Loft – 20 Hanover St Suite A, Manchester Ginos Jewelers – 10 Central Ave, Dover Lakes Region Goldsmith – 23 Church St, Laconia The Jewelry Palace – 2158 Woodbury Ave, Newington Nashua Jewelers – 136 W Pearl St, Nashua Gold

  • De beste reiskreditkaarten

    Reiskreditkaarten zijn een veilige manier om je geld te beschermen tijdens reizen. In plaats van contant geld dat je constant moet wisselen, gebruik je een internationaal geaccepteerde kreditkaart en heb je altijd de juiste valuta. Niet alle reiskaarten zijn even goed; kies er een die je reiseerfahr

Copyright Reizen © https://nl.ynyoo.com
ProbleemOorzaakFix
ModuleNotFoundErrorNiet geïnstalleerd / verkeerde env / typopip install, check venv, check spelling
ImportError: cannot import nameCirculaire import / naam niet in moduleHerschik, verplaats imports in functies
Naam conflictfrom x import * of lokaal bestand overschaduwt stdlibNoem bestanden niet math.py, random.py; gebruik expliciete imports
Relatieve import errorModule als script draaienDraai als python -m pakket.module of gebruik absolute imports