我是一个Python初学者,对模块的导入方式有点困惑。
我附上了屏幕截图,以更清楚地说明我的要求。
我从 djangoproject.com 获取以下代码:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
由于导入语句引用名为“models”的文件夹,这是否意味着“models”文件夹中的每个模块都将导入到会话中?
如果是这样,是 models.Model 在这些模块之一中找到的类吗?如果是,那么为什么我无法在任何文件中找到此类?我在所有文件中搜索了“class Model(”,但找不到它。
当您导入这样的模块时,如果
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
您可以在此处找到更多信息:__init__.py 的用途是什么? 在这里:https://docs.python.org/3/tutorial/modules.html
我同意上面的答案,但如果它变得太复杂,你总是可以导入完整的模块:)
import django.db
class Book(models.Model):
title = models.CharField(max_length=100)
我总是
import
完整模块,因为有时我需要模块中的其他东西,所以最后我大多把from
放在那里。我刚才说的不是很清楚,所以这里是一个例子:
节目开始:
import tkinter
节目结束:
from tkinter import Simpledialog, Tk, Canvas
希望这有帮助!