Python · Avançado · Português · Técnico
cache de módulos
Dicionário sys.modules em que o interpretador guarda todo módulo já importado. Um novo import do mesmo nome devolve o objeto guardado, sem executar o arquivo de novo.
Onde usar
Explica por que o código de nível de módulo roda uma vez só e por que um módulo funciona como singleton. Em testes, remover a entrada de sys.modules força um import novo.
Em código
import sys
import json
print('json' in sys.modules) # True
import json as j2 # não executa de novo
print(j2 is sys.modules['json']) # TrueExemplos
O módulo só roda uma vez porque fica no cache de módulos.
No teste, limpei o cache de módulos pra forçar um import novo.
Cuidado
Não espere que editar o arquivo e importar de novo recarregue o código; é preciso importlib.reload ou reiniciar o processo.
Sinônimos
sys.modules