Ce face sys.modules
sys.modules asociază numele fiecărui modul încărcat cu obiectul modulului. La import, Python verifică întâi aici: dacă modulul există, îl refolosește fără să ruleze din nou codul lui. De aceea un modul este încărcat o singură dată per program.
Ștergerea unei chei forțează reîncărcarea la următorul import (pentru asta există și importlib.reload()). Testele folosesc uneori sys.modules pentru a înlocui un modul cu o versiune falsă.
Exemple
Exemplul 1: Module încărcate
import sys
print("json" in sys.modules)
import json
print("json" in sys.modules, sys.modules["json"] is json)
print(type(sys.modules).__name__, len(sys.modules) > 10)
Rezultat
False
True True
dict True
Greșeli frecvente
- Modifici fișierul unui modul în timpul rulării și apelezi din nou
import; codul nu se reîncarcă. Foloseșteimportlib.reload(modul).
Comenzi înrudite
import / from ... import: Încarcă un modul (din biblioteca standard, instalat sau scris de tine) ca să îi folosești funcțiile.sys.path: Lista directoarelor în care Python caută modulele la import.