Python相互依赖的类(循环依赖)

Posted

技术标签:

【中文标题】Python相互依赖的类(循环依赖)【英文标题】:Python mutually dependent classes (circular dependencies) 【发布时间】:2011-09-18 03:41:10 【问题描述】:

我搜索了很多,但我发现的主要是python中递归编程的例子。那么问题来了:

我怎样才能做到这一点?

class A:
    b = B()

class B:
    a = A()

【问题讨论】:

这不是递归,是循环依赖。 【参考方案1】:

Python 中的一切都是动态的——甚至是类声明。没有什么可以阻止您在初始声明后修改类的内容:

class A:
    pass

class B:
    a = A()

A.b = B()

注意:如果您对 Python 不太熟悉,pass 关键字只允许您说“这里什么都没有” - 除非 A 类像本示例中那样为空,否则这并不重要!

【讨论】:

如果你在另一个文件中from foo import A 这也行不通

以上是关于Python相互依赖的类(循环依赖)的主要内容,如果未能解决你的问题,请参考以下文章

spring的三级缓存解决循环依赖

如何同步三个相互依赖的任务的循环执行?

Spring循环依赖

spring-循环依赖

Spring — 循环依赖

Spring — 循环依赖