ExpertiDict

Python · Avançado · Português · Técnico

cache de módulos

/ˈkaʃi dʒi ˈmɔdulus/substantivo

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'])  # True

Exemplos

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

Veja também

Todos os termos de Python