你如何相互依赖处理同一模块中的多个Python类?

Edw*_*rdr 4 python import class

我正在使用ODM库,并且当它们相关时,我将文档定义为同一模块中的类.我遇到了一个循环依赖问题,因为我之前在Python中没有遇到过这个问题,我不知道如何告知类别彼此的存在.例:

''' docs.py '''
from mongoengine import Document
from mongoengine.fields import StringField, ReferenceField, ListField


class Base(Document):
    some_field      = StringField()


class Foo(Base):
    other_field     = StringField()
    another_field   = ReferenceField(Bar)


class Bar(Base):
    other_field     = StringField()
    another_field   = ListField(ReferenceField(Foo))
Run Code Online (Sandbox Code Playgroud)

就目前而言,Python将抛出一个NameError因为Bar当解释器在类中的文件中获取对它的引用时没有定义Foo.我如何告诉Python不要担心,并且类定义将很快出现?

DrT*_*rsa 5

ReferenceField 也接受类名.

another_field   = ReferenceField('Bar')
Run Code Online (Sandbox Code Playgroud)