Python循环引用

sha*_*vey 2 python sqlalchemy circular-dependency

试图在同一个文件中有两个引用彼此的类.什么是最好的工作方式:

class Foo(object):
    other = Bar

class Bar(object):
    other = Foo

if __name__ == '__main__':
    print 'all ok'
Run Code Online (Sandbox Code Playgroud)

问题似乎是因为属性在类上,因为它一旦解析了类本身就会尝试执行.

有办法解决这个问题吗?

编辑:

这些键用于SQLAlchemy映射,它们实际上是类变量(不是实例).

zvo*_*one 10

这会做你想要的:

class Foo(object):
    pass

class Bar(object):
    pass

Foo.other = Bar
Bar.other = Foo
Run Code Online (Sandbox Code Playgroud)

不过,我宁愿完全避免这种设计.