Ich erforsche das Konzept der Namespace in Python, und ich kann die folgende nicht erklären: builtins
Nachladen nicht effektiv das Modul neu zu laden. Hier ein Beispiel:Nachladen builtins in 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')
Wo mymodule einfach die Zuordnung enthält x = 5
. Die Ausgabe lautet:
6
5
hello
hello
Vielleicht ist es eine Dummy-Frage, aber was ist der Grund für diese Art von Verhalten?