python - 在python中以不同的名称导入模块两次

标签 python python-3.x

我确实导入了带有名称的模块,然后又不带名称地导入了它,两者似乎都工作正常并且提供了相同的类类型。

>>> from collections import Counter as c
>>> c
<class 'collections.Counter'>

>>> from collections import Counter
>>> Counter
<class 'collections.Counter'>

这在 python 中是如何工作的,单个对象是否指向相同的引用? 另外为什么不覆盖或删除以前的名称导入。

我也不确定术语

最佳答案

使用 python 2.7.13:

>>> from collections import Counter as c
>>> c
<class 'collections.Counter'>
>>> from collections import Counter
>>> Counter
<class 'collections.Counter'>
>>> id(c), id(Counter)
(140244739511392, 140244739511392)
>>> id(c) == id(Counter)
True

是的,cCounter是一样的。引用同一对象的两个变量(名称)。

关于python - 在python中以不同的名称导入模块两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47314905/

相关文章:

python-3.x - Python3 - 网页抓取 zomato - 多个页面

python - 如何创建非阻塞函数?

python - 从文本行列表中查找字符串

python - 编写将分钟整数转换为格式为 "X hour(s) Y minute(s)"的字符串的函数的最佳方法是什么?

python - 适合 Python 平均值的随机分布

python - 如何使用 scipy.optimize.minimize 修复推导条件的拟合

python - 找出列中最大的数字

python-3.x - 无法使用 cx_freeze 创建和运行 python 脚本的独立可执行文件

python - 在某些情况下让 python argparse 仅使用部分默认值

python - 为什么没有用于 Windows 的 pwd python 模块