导入语句中的点表示什么?

时间:2019-05-16 06:07:38

标签: python python-3.x

任何人都可以解释from .object import object的含义吗?

我知道一切都像Java中一样扩展对象。但是.object是什么意思?

我在psycopg2的源代码中看到了这段代码:

from .object import object

class cursor(object):
    pass

2 个答案:

答案 0 :(得分:0)

来自docs

  

一个前导点表示进行导入的模块所在的当前软件包。两点表示一个包装级别。三个点在两个级别上,依此类推。因此,如果从执行。从pkg软件包中的模块导入mod,然后最终将导入pkg.mod。如果从pkg.subpkg1内的..subpkg2 import mod执行,则将导入pkg.subpkg2.mod。 PEP 328中包含相对进口的规范。

该点基本上是告诉程序在查看python路径中的文件之前先在当前目录中进行搜索。如果当前目录和您的python路径中都存在object,那么将仅导入前者中的一个。

答案 1 :(得分:0)

这是显式relative imports的新语法。这表示当前软件包中的import

在没有.的情况下,如果出于某种无法理解的原因在主脚本旁边有一个file _object.py,则object会损坏。使用.,可以确保获得自己的模块。

定义什么是“当前程序包”的地方是它应该说导入程序包所在的位置。它基本上意味着当前的名称空间或包目录。

希望这会有所帮助!