Python是否在句点之前导入当前包名?

2024-04-26 22:35:10 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: frompyimportflaskinitpagesimple结构
2条回答

点表示当前的直接工作,因此在python代码的import语句中程序员在script语句之前使用点。在您的例子中,您的包名是您的应用程序,因此您可以在import语句中使用dot

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

from .simple_page import simple_page

谁能解释一下为什么你的申请在考试前就被取消了吗。有吗

这样做是为了告诉您,your应用程序是项目的基础,您需要从这里开始工作。它使项目路径成为绝对路径,并使您的应用程序成为源目录

但是如果不使用这种方法,并且使用相对导入,比如from .simple_page import simple_page,那么如果简单的页面文件被删除并重构到不同的文件夹和__init__文件中,那么调试就会变得很困难

使用from yourapplication.simple_page import simple_page这种方式可以告诉您项目的完整结构,并且所有导入都是从源目录级别进行的,这使得在后期重构非常容易

总而言之:在一句话中,它只是为了维护、扩展项目

你可以选择相对导入和绝对导入,这样你就可以知道整个项目的结构,在重构的时候,如果项目设计发生了变化,重构代码就要花时间,相比之下,相对导入重构要花更少的时间

相关问题 更多 >