gpt4 book ai didi

python - 实例化两个相互引用的类

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:56 25 4
gpt4 key购买 nike

我有两个类,BC

我想用 C 引用实例化 B 并用 B 引用实例化 C

我可以添加一个 setter 方法,但想知道我是否可以在 __init__ 阶段或任何其他优雅的方式中做到这一点

最佳答案

由于先有鸡还是先有蛋的情况,在 __init__ 中是不可能的。但是,在一个赋值语句中是可能的:

>>> class A:
... pass
...
>>> class B:
... pass
...
>>> a, b = b.a, a.b = A(), B()
>>> a.b is b
True
>>> b.a is a
True

这依赖于 Python 从左到右计算赋值这一事实。

not thread safe ;如果您需要保证线程应用程序中存在引用,那么您需要使用互斥体来处理可能的竞争条件。 GIL 在操作码级别工作,这是比 Python 代码行更细粒度的分辨率。

关于python - 实例化两个相互引用的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com