更新:
情况1:
同一文件夹中的文件:
main.py
string.py
main.py中的代码:
import string
string.py中的代码:
print('Hello!')
运行main.py输出是:你好!
案例二:
同一文件夹中的文件:
main.py
math.py
main.py中的代码:
import math
math.py中的代码:
print('Hello!')
运行main.py输出没什么...
老问题:
如果我将我的脚本命名为“string.py”并将其导入另一个脚本,它会与内置的“string”模块重叠
如果我将我的脚本命名为“math.py”并将其导入另一个脚本,则内置的“数学”会与我自己的重叠
使用内置模块等名称的脚本导入行为取决于我如何命名它们。
一些受影响的模块名称:hashlib、string、calendar
不影响的模块名称:math、cmath、os
Python 要做的第一件事是在 sys.modules 中查找名称 abc。这是之前导入的所有模块的缓存。如果在模块缓存中找不到该名称,Python 将继续搜索内置模块列表。这些是 Python 预装的模块,可以在 Python 标准库中找到。如果在内置模块中仍未找到该名称,Python 然后在 sys.path 定义的目录列表中搜索它。
来自 Michael Lutz 的“Learning Python”:
粗略地说,Python 的模块搜索路径是由这些主要组件的串联组成的,其中一些是为您预设的,其中一些您可以定制以告诉 Python 在哪里查找:
程序的主目录
PYTHONPATH 目录(如果设置)
标准库目录
任何 .pth 文件的内容(如果存在)
第三方扩展的站点包主页
那么现在哪一个是正确的呢?
慕哥9229398
犯罪嫌疑人X
相关分类