Pythons `import`-setning: Moduler, navnerom og best practices

I Python er import hvordan du bringer kode fra én modul inn i en annen. Det er ikke «main import» — det er ingen Python-term. Her er hvordan det egentlig fungerer, med mønstre du bruker daglig.

Grunnleggende import-syntaks

import modulnavn 

Dette laster modulnavn og binder det til en variabel i ditt nåværende navnerom. Du får tilgang til innholdet med prikk-notasjon:

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

Vanlige import-mønstre

1. Importér modul (Anbefalt standard)

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

Fordeler: Eksplisitt, lesbar, unngår navnekonflikter, viser opprinnelse.

2. Importér spesifikke navn

 from math import sqrt, pi
sqrt(16) # 4.0 — ingen prefiks nødvendig
pi # 3.14159... 

Bruk når: Du bruker et par navner tungt. Unngå: from modul import * (navneromsforurensning).

3. Importér med alias

 import matplotlib.pyplot as plt
import seaborn as sns 

Standard konvensjoner (pd, np, plt, sns, tf, torch) gjør kode umiddelbart lesbar.

4. Betinget / Lat import

 # Bare importer tunge avhengigheter når nødvendig
def analyse_data():
    import pandas as pd # Lokalt import — raskere oppstart hvis ubrukt
    return pd.read_csv('data.csv') 

Hvordan import fungerer under huven

  1. Sjekk sys.modules — hvis allerede lastet, returner cached modul
  2. Finn modul via sys.path (nåværende mappe, PYTHONPATH, site-packages, stdlib)
  3. Kjør modul-kode — kjører top-level setninger (def, class, tilordninger)
  4. Opprett modul-objekt — navnerom for modulens globale variabler
  5. Cache i sys.modules
  6. Bind navn i importerens navnerom (per import-setning)

Modul-søkesti (sys.path)

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

Pakker og undermoduler

 import pakke.undermodul
from pakke import undermodul
from pakke.undermodul import funksjon 

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

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

Vanlige fallgruver og løsninger

ProblemÅrsakLøsning
ModuleNotFoundErrorIkke installert / feil env / typopip install, sjekk venv, sjekk stavelse
ImportError: cannot import nameSirkulær import / navn ikke i modulRestrukturer, flytt import inne i funksjoner
Navnekonfliktfrom x import * eller lokal fil skygger stdlibIkke navngi filer math.py, random.py; bruk eksplisitte import
Relativ import-feilKjører modul som skriptKjør som python -m pakke.modul eller bruk absolute import

Best practices

  1. Standardbibliotek først, så tredjeparts, så lokale — hver gruppe alfabetisert
  2. Én import per linje (PEP 8)
  3. Bruk import modul over from modul import *
  4. Alias: Bruk fellesskapsstandarder (pd, np, plt, tf, torch)
  5. Unngå kjøretids-sti-manipulering — bruk riktig pakking (pyproject.toml, pip install -e .)
  6. Type-sjekking: from __future__ import annotations + TYPE_CHECKING vakter

Eksempel: Rent import-blokk

 # 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 mittprosjekt.config import innstillinger
from mittprosjekt.modeller import Bruker
from mittprosjekt.verktøy import logger 

Pythons import-system er kraftig, eksplisitt og forutsigbart — en gang du forstår navneromsmodellen. Gullregelen: gjøre det åpenbart hvor hvert navn kommer fra. Din fremtidige jeg (og medarbeidere) vil takke deg.

Valuta og veksling
  • Catherine O'Hara spiller i KFCs nyeste reklame

    Skuespillerinnen i den nylige KFC-reklamen er Catherine OHara – den Emmy-vinner kanadiske komedilegend. Hvorfor henne? Schitts Creek (Moira Rose) – kulturfænomen, 9 Emmys Ikoniske roller: Beetlejuice (Delia), Home Alone (Kate McCallister), Best in Show, A Mighty Wind Komedieutstrekning: Absurditet,

  • Slik teller du britiske pund og pence

    Instruksjoner 1Forstå myntene. Det er 8 mynter utstedt i Storbritannia. Det er en penny (£0,01), to pence (£0,02, eller 2p), fem pence (£0,05, eller 5p), ti pence (£0,10, eller 10p), tjue pence (£0,20, eller 20p), femti pence (£0,50 eller 50p), ett pund (£1) og to pund (£2). 1p og 2p er kobber.

  • Reisesjekker vs. reisekort: hva er best?

    Selskaper American Express er det ledende selskapet for reisesjekker og Visa TravelMoney er det ledende reisekortet. Det finnes andre forhåndsbetalte kortalternativer, men disse aksepteres ikke overalt i utlandet. Banker Reisesjekker og reisekort kan kjøpes på din bank eller lokale valutaveks

Copyright Reiser © https://no.ynyoo.com