【发布时间】:2018-07-26 08:10:44
【问题描述】:
del 似乎有一些让我困惑的记忆。请参阅以下内容:
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'
很好。让我们看看如果我们删除整个数学包会发生什么:
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
所以现在数学本身已经消失了,正如预期的那样。
现在让我们再次导入数学:
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'
所以不知何故,交互式 python 记得即使在我们删除了整个数学包并再次导入之后,math.cos 也被专门删除了。
python 将这些知识保存在哪里?我们可以访问它吗?我们可以改变它吗?
【问题讨论】:
-
我不知道他为什么需要它,但这是了解其工作原理的好方法。
-
1) 使用标准库并不意味着您可能对非标准库感兴趣。
-
2) 它让您了解库机制是如何工作的,这可能会影响到时间流逝、资源使用、硬盘访问、库中的静态变量等。
-
3) 它让你了解解释器是如何处理一些问题的,并将其转换为另一个类似的问题,甚至是你曾经的解释器,或者努力让它变得更好
-
4) 好奇心。它是打开知识之门的钥匙。正如我父亲所说:打破你的学习。你永远不知道你的好奇心会带你走多远。我父亲也说过:怀疑的时候就是学习的时候(把任何怀疑当作学习的灵感)。此外,Isaac Asimov 在预测互联网时所说的好奇心也很有趣。
标签: python python-3.x ipython packages del