任何人都可以解释from .object import object
的含义吗?
我知道一切都像Java中一样扩展对象。但是.object
是什么意思?
我在psycopg2
的源代码中看到了这段代码:
from .object import object
class cursor(object):
pass
答案 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
会损坏。使用.
,可以确保获得自己的模块。
定义什么是“当前程序包”的地方是它应该说导入程序包所在的位置。它基本上意味着当前的名称空间或包目录。
希望这会有所帮助!