python对导入模块的困惑

时间:2016-09-04 20:00:24

标签: python-3.x

我看到了这句话

from django import forms

文件夹结构是

django\
  __init__.py
  forms\
     __init__.py
     ..(continues)

我怀疑的不是上述陈述,而是因为我们无法导入这样的形式。

import django.forms
  

当我在pycharm中尝试这个时。它说未使用的进口声明。

以下是我的代码:

#from django import forms

import django.forms 

    from .models import Post

    class PostForm(forms.ModelForm):

        class Meta:
            model = Post
            fields = ('title', 'text',)

它给了我错误

class PostForm(forms.ModelForm):
NameError: name 'forms' is not defined

1 个答案:

答案 0 :(得分:1)

来自python's docs

  

...使用import item.subitem.subsubitem等语法时,每个项目   除了最后一个必须是一个包;最后一项可以是一个模块   或包,但不能是定义的类或函数或变量   上一个项目。

然后由于__init__.pyforms指定为一个包,您应该可以通过import django.forms导入它。访问其成员的方式会有所不同,因为在您编写forms.x之前,您现在可以编写django.forms.x