在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
答案 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