del
semble avoir la mémoire qui me énigmes. Voir la suivante:
In [1]: import math
In [2]: math.cos(0)
Out[2]: 1.0
In [3]: del math.cos
In [4]: math.cos(0)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-4-9cdcc157d079> in <module>()
----> 1 math.cos(0)
AttributeError: module 'math' has no attribute 'cos'
Des beaux. Voyons ce qui se passe si nous supprimons l'ensemble du paquet de maths:
In [5]: del math
In [6]: math.cos(0)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-6-9cdcc157d079> in <module>()
----> 1 math.cos(0)
NameError: name 'math' is not defined
Alors maintenant, les mathématiques lui-même s'en est allé, comme prévu.
Maintenant, nous allons importer les mathématiques à nouveau:
In [7]: import math
In [8]: math.cos(0)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-8-9cdcc157d079> in <module>()
----> 1 math.cos(0)
AttributeError: module 'math' has no attribute 'cos'
Donc, en quelque sorte interactive python se souvient que les mathématiques.cos a été supprimé spécifiquement, même après que nous avons supprimé, l'ensemble du paquet de maths et importé à nouveau.
D'où vient python garde cette connaissance? Peut-on y avoir accès? Pouvons-nous changer?