关于Django示例的Python导入规则

时间:2014-03-09 14:29:47

标签: python python-import

我对Python import的类如何感到困惑。查看Django的源代码,我可以看到名为django.views.generic的模块,其中包含.py个文件,例如:base.pylist.pyedit.py

现在,如果我想import ListView class(在list.py中定义),我可以这样做:

from django.views.generic.list import ListView

但以下内容也适用:

from django.views.generic import ListView

问题:这两者有什么区别吗?

Python是否将文件视为名为文件的不同模块?

1 个答案:

答案 0 :(得分:0)

如果查看__init__.py文件,您会看到它为您导入了类。所以当你这样做时

from django.views.generic import ListView

您实际上是从__init__.py文件导入该类,而不是从django.views.generic.list

导入

另外,请查看Can someone explain __all__ in Python?

所以几乎没有什么区别,在这两种方式中你最终会得到相同的对象。