Python的“from [点]包导入...”语法

115 投票
2 回答
77755 浏览
提问于 2025-04-17 22:59

在看一个Django教程的时候,我看到了一段这样的语法:

from .models import Recipe, Ingredient, Instruction

有人能解释一下这个 .models 是怎么回事吗?它具体是做什么的?通常我会这样写:

from myapp.models import

那为什么在 .models 前面没有加上 myapp 这部分,它还是能正常工作呢?

2 个回答

1

除了Sudeep Juvekar,这个问题还和manage.py的行为有关。

django-admin.py和manage.py中:

它会把你项目的包放到sys.path里。

153

这里的 . 是一个快捷方式,它告诉程序在 当前 的包里先找东西,然后再去其他地方的 PYTHONPATH 里找。所以,如果在你的 PYTHONPATH 里有一个同名的模块 Recipe,它就不会被加载进来。

撰写回答