这是代码
import random
print("Hello", end="")
print("twice")
和代码的屏幕截图
当我执行这段代码时,它出于某种原因运行了两次。问题似乎来自 import random 语句,因为如果我删除该语句或导入其他一些模块,它就可以正常工作。
这可能是什么原因,我应该在我的系统上重新安装 Python。
原文由 Knight 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是代码
import random
print("Hello", end="")
print("twice")
和代码的屏幕截图
当我执行这段代码时,它出于某种原因运行了两次。问题似乎来自 import random 语句,因为如果我删除该语句或导入其他一些模块,它就可以正常工作。
这可能是什么原因,我应该在我的系统上重新安装 Python。
原文由 Knight 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您的文件(模块)被称为 random.py
, import random
将导入这个文件。
现在,“导入”是什么意思?语句 import something
将导致 Python 查找名称 something
从当前目录开始。因此, import random
将导致导入这个文件,因为它的名称将 random
。此外,如果要导入的名称已经在命名空间中,那么 import
语句将被忽略。
一旦找到要导入的模块,就会执行其代码。
因此,您的脚本流程如下:
random.py
名称random
到命名空间random.py
中的代码
random
名称已经存在于命名空间中,所以忽略 import random
语句原文由 Right leg 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
python没什么问题。
原因很简单:
您的模块正在导入自身(因为它也被命名为
random
)——这与 python 的查找机制有关。 python 将首先尝试从您的根文件夹导入,然后再导入来自 pythonpath 的模块。从 文档: