Python导入-句点前的当前软件包名称?

时间:2019-07-12 08:49:44

标签: python python-import

flask tutorial中,使用以下包结构:

yourapplication/__init__.py
yourapplication/simple_page.py

现在,在__init.py中,完成以下导入:

from yourapplication.simple_page import simple_page

有人可以向我解释为什么yourapplication之前的.在那里吗?我以为你可以做

from .simple_page import simple_page

2 个答案:

答案 0 :(得分:1)

任何人都可以向我解释您的应用为何在之前。在那儿?

这样做是为了告诉您yourapplication是项目的基础,从那里开始工作。它绝对指向项目路径,并将您的应用程序作为源目录。

但是,如果此方法未使用,并且相对导入的使用方式类似于from .simple_page import simple_page,则如果简单页面文件被删除并重构到不同的文件夹和__init__文件中,那么它将变得难以调试。 >

使用from yourapplication.simple_page import simple_page可以说明项目的完整结构,并且所有导入都是从源目录级别进行的,这使得在以后的阶段轻松进行重构。

总体:只用一句话就可以维护,扩展项目。

您可以相对导入和绝对导入,使用这种方法可以告诉整个项目结构,并且在重构时间中,如果项目设计发生更改,则重构代码要花费一些时间,相比之下,相对导入重构所需的时间要短些

答案 1 :(得分:0)

dot表示当前的直接工作方式,因此在import语句中的python代码中,程序员在脚本语句之前使用dot。在您的情况下,您的包名称就是您的应用程序,因此您可以在import语句中使用点号。

yourapplication/simple_page.py yourapplication/__init__.py dot = yourapplication

from .simple_page import simple_page