title: python import error, seems like recursive import, but can not resolve by such way
body: <p><strong>Updated</strong> Problem solved, I have some design problem here.</p>
  
  <p>The directory looks like that:</p>
  
  <pre><code>/view
    |-__init__.py
    |-quiz.py
    |-test.py
    |-user.py
  </code></pre>
  
  <p>And the problem is that in <code>quiz.py</code>, I import a <code>class</code> from <code>test</code>. and in <code>test.py</code>, I import a <code>class</code> from <code>quiz</code> .</p>
  
  <p><strong>Updated: I changed <code>import</code> but there is still a <code>AttributeError</code></strong></p>
  
  <p>The code as following:</p>
  
  <p><code>quiz.py</code></p>
  
  <pre><code>#ignore some imports here
  import test
  from user import User
  
  class Quiz(Document):
      creator         =   ReferenceField(User, reverse_delete_rule=CASCADE)
      info            =   GenericEmbeddedDocumentField("QuizInfo")
      description     =   StringField(max_length=100)
      attachment      =   GenericEmbeddedDocumentField("QuizAttach")
      correctanswer   =   GenericEmbeddedDocumentField("QuizAnswer")
      wronganswer     =   GenericEmbeddedDocumentField("QuizAnswer")
      manualdifficulty=   FloatField(min_value=0, max_value=1)
      autodifficulty  =   FloatField(min_value=0, max_value=1)
      checkout        =   GenericEmbeddedDocumentField("QuizCheckcout")
      tag             =   ListField(StringField(max_length=20))
  
  #ignore some codes here
  
  class QuizCheckout(EmbeddedDocument):
      time            =   DateTimeField()
      type            =   IntField()
      description     =   StringField()
      test            =   ReferenceField(test.Test, reverse_delete_rule=CASCADE)
  </code></pre>
  
  <p><code>test.py</code></p>
  
  <pre><code>import quiz
  
  
  class Test(Document):
      createdate      =   DateTimeField()             #Create datetime
      description     =   StringField()               #decription of this test
      takennumber     =   IntField()                  #the number of students who may take this test
      quiz            =   GenericEmbeddedDocumentField('TestQuiz')
  
  class TestQuiz(EmbeddedDocument):
      quiz            =   ListField(ReferenceField(quiz.Quiz, reverse_delete_rule=CASCADE))
                          #Reference to Quiz, if Quiz is deleted, this reference will be deleted too.
      correct         =   IntField()
                          #how many students got this right
  </code></pre>
  
  <p>and the error is </p>
  
  <pre><code>Exception Type: AttributeError Exception
  Value: 'module' object has no attribute 'Quiz'
  </code></pre>
  
  <p>At first I thought that maybe a recursive problem, but I only find that I could move <code>import</code> into functions to avoid recursive import, but there is no functions here, and I try to move <code>import</code> into class, it don't work.</p>
  
  <p>Is there any way to keep these definition in separate file? </p>