J'explore le concept d'espace de noms en Python et je ne peux pas expliquer ce qui suit: le rechargement builtins
ne recharge pas efficacement le module. Voici un exemple:Rechargement de builtins en Python
import importlib as il
import os
import mymodule
mymodule.x = 6
print(mymodule.x)
mymodule = il.reload(mymodule)
print(mymodule.x)
import builtins
builtins.print = lambda x : os.system('echo hello')
builtins.print('hi')
builtins = il.reload(builtins)
builtins.print('hi')
Où mymodule contient simplement l'affectation x = 5
. La sortie est:
6
5
hello
hello
Peut-être que c'est une question fictive, mais quelle est la raison de ce genre de comportement?