Pythons `import`-udsagn: Moduler, Navnerum & Bedste Praksis

I Python er import måden, du bringer kode fra ét modul ind i et andet. Det er ikke "main import" — det er ingen Python-term. Her er hvordan det faktisk virker, med mønstre, du bruger dagligt.

Grundlæggende Import-syntaks

import modul_navn 

Dette indlæser modul_navn og binder det til en variabel i dit nuværende navnerum. Du adgang dets indhold med punktum-notation:

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

Almindelige Import-mønstre

1. Importér Modul (Anbefalet Standard)

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

Fordele: Eksplicit, læsbar, undgår navnekollisioner, viser oprindelse.

2. Importér Specifikke Navne

 from math import sqrt, pi sqrt(16) # 4.0 — ingen præfiks nødvendigt pi # 3.14159... 

Brug når: Du bruger et par navne tungt. Undgå: from modul import * (navnerumsforurening).

3. Importér med Alias

 import matplotlib.pyplot as plt import seaborn as sns 

Standard-konventioner (pd, np, plt, sns, tf, torch) gør koden øjeblikkeligt læsbar.

4. Betinget / Døve Importer

 # Importer kun tunge afhængigheder når nødvendigt def analyze_data(): import pandas as pd # Lokal import — hurtigere start hvis ubrugt return pd.read_csv('data.csv') 

Hvordan Import Virker Under Hulet

  1. Tjek sys.modules — hvis allerede indlæst, returnér cached modul
  2. Find modul via sys.path (nuværende mappe, PYTHONPATH, site-packages, stdlib)
  3. Udfør modul-kode — kører top-niveau statements (def, class, tildelinger)
  4. Opret modul-objekt — navnerum for modulets globale variabler
  5. Cache i sys.modules
  6. Bind navn i importerens navnerum (per import-udsagn)

Modul-søge-sti (sys.path)

 import sys sys.path # ['', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', # '/home/user/.local/lib/python3.11/site-packages', ...] 
  • '' = nuværende scripts mappe (eller CWD hvis interaktiv)
  • Installer pakker: pip install pakke → site-packages
  • Virtuelle miljøer isolerer site-packages

Pakker & Undermoduler

 import pakke.undermodul from pakke import undermodul from pakke.undermodul import funktion 

Mappe med __init__.py = pakke. __init__.py kan eksponere undermoduler:

 # pakke/__init__.py from .undermodul import offentlig_funktion __all__ = ['offentlig_funktion'] 

Almindelige Faldgruber & Løsninger

ProblemÅrsagFix
ModuleNotFoundErrorIkke installeret / forkert env / stavefejlpip install, tjek venv, tjek stavning
ImportError: cannot import nameCirkulær import / navn ikke i modulRestrukturér, flyt importer ind i funktioner
Navnekollisionfrom x import * eller lokal fil overskygger stdlibUndlad at navngive filer math.py, random.py; brug eksplicitte importer
Relativ import-fejlKører modul som scriptKør som python -m pakke.modul eller brug absolutte importer

Bedste Praksis

  1. Standardbibliotek først, så tredjeparts, så lokale — hver gruppe alfabetisk
  2. Et import pr. linje (PEP 8)
  3. Brug import modul frem for from modul import *
  4. Aliaser: Brug fællesskabs-standarder (pd, np, plt, tf, torch)
  5. Undgå runtime sti-manipulation — brug korrekt pakning (pyproject.toml, pip install -e .)
  6. Type-checking: from __future__ import annotations + TYPE_CHECKING værner

Eksempel: Rent Import-blok

 # Standardbibliotek import json import os from pathlib import Path from typing import List, Optional # Tredjeparts import numpy as np import pandas as pd import requests # Lokale from mitprojekt.config import indstillinger from mitprojekt.modeller import Bruger from mitprojekt.utils import logger 

Pythons import-system er kraftfuldt, eksplicit og forudsigeligt — når du forstår navnerums-modellen. Gyldne regel: gør det åbenlyst, hvor hvert navn kommer fra. Din fremtidige du (og teamkolleger) vil takke dig.

Valuta & veksel
  • Hvordan man veksler penge på Cuba

    Mens rejser i udlandet kan være spændende og eventyrfyldte, er daglige praktikaliteter, såsom at få kontanter, uudværlige. Hvis du planlægger en rejse til Cuba, kan du undre dig over valutaomregning. Mens at veksle dine penge på Cuba ikke er præcis den mest simple opgave, med lidt viden behøver det

  • Currys UK returpolitik: 21 dage, betingelser & proces

    Currys (tidligere Currys PC World) tilbyder en 21-dages returpolitik for de fleste produkter købt online eller i butik. Kerne-betingelser Vindue: 21 dage fra leverings/afhentnings-dato. Stand: Vare skal være ubrugt, i original emballage, med alle tilbehør, manualer og segl intakte. Købsbevis: Ordr

  • Krav til Emirates Islamic Bank Lønnskonto

    For Ansatte Arbejdsgiver skal have en virksomhedslønnaftale med Emirates Islamic Bank. Minimums månedsløn (varierer per aftale). Alder ≥ 18. Gyldigt Emirates ID + pas/opholdsvisum (udlændinge). Opfyld KYC/AML-krav. For Virksomheder UAE virksomhedstilværelse. Minimum antal ansatte (per aftale). Ko

Copyright Rejser © https://da.ynyoo.com