python导入初学者的困惑

时间:2020-01-06 09:46:36

标签: python import

我是python的初学者,对模块的导入方式感到困惑。

我附上了一个屏幕截图,以使我的询问更加清楚。

我从djangoproject.com取得了以下代码:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)

由于import语句指向名为“ models”的文件夹,这是否意味着“ models”文件夹中的每个模块都已导入到会话中?

如果是,models.Model是在其中一个模块中找到的类吗?如果是,那为什么我在任何文件中都找不到该类?我已经在所有文件中搜索了“类Model(”,但找不到它。

enter image description here

1 个答案:

答案 0 :(得分:0)

在导入这样的模块时,如果module.__init__.py为空,则不会导入任何内容。

如果您可以执行以下操作:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)

那么这意味着CharField是在__init__.py中定义的,或者是以某种方式在module.__init__.py中显式导入的。

因此,要回答您的问题,在致电from django.db import models之后实际导入了什么,您需要检查module.__init__.py

您可以在此处找到更多信息:What is __init__.py for? 此处:https://docs.python.org/3/tutorial/modules.html