1
1
您将看到两个完全不同的信息源,教程和语言参考。 教程部分 The Module Search Path (除了只描述默认行为外)还只描述了实际导入模块时发生的情况。 如果模块已经在缓存中,则不会发生此过程。这里没有解释,因为上一节已经讨论过了, More on Modules 以下内容:
它没有解释发生这种情况的机制,因为这只是一个教程。
同时,在导入系统的参考文档中,
module cache
部分解释了
注意,如果模块已经被导入,python会避免执行模块的语句,或者为了提高效率只导入一次,这并不完全正确。这是默认加载程序将模块放在
下一节从下一节开始, Finders and loaders 与本教程的“模块搜索路径”部分相比,类似地描述了如何找到模块的详细信息:
所以再说一遍,不是 确切地 确实,解释器首先搜索内置模块。相反,解释器只是按顺序搜索它的查找器,默认情况下,第一个查找器是内置的模块查找器。但如果更改查找器列表,python将不会首先搜索内置项。
事实上,如果你打印出来
(在ipython下,或者如果您导入了
那个
In CPython 3.6
(道歉在3.6到3.7之间来回跳动,但在这里不重要),它所调用的实现特定的功能是
但需要注意的是
所以
|
2
1
当你这样做的时候
进口
一个模块,解释器首先搜索内置模块,然后
|
3
0
你需要区分
当我装载
这是我的模块缓存,但当我尝试
因为numpy不在我的模块缓存中。我将要求python在一组固定的目录中查找它,这些目录在
如果python在我的
|
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
Henry · 使用Python将json重新格式化为键值对 2 年前 |
eymentakak · json字典类型错误:字符串索引必须是整数 2 年前 |
Qubix · 从熊猫数据帧创建相对熵矩阵 2 年前 |
guiguilecodeur · 如何删除我的词汇表中的重复元素 2 年前 |
Susheel P M · 这是关于if-else语句[关闭] 2 年前 |
Slartibartfast · 关于Python版本安装 2 年前 |