Python 将类别A的实例分配给类别A的成员是否为循环引用?

Python 将类别A的实例分配给类别A的成员是否为循环引用?,python,cyclic-reference,Python,Cyclic Reference,既然Yummie.instance是Yummie的一个实例,并且type(Yummie.instance)==Yummie是真的,那会是循环引用的一个例子吗?我应该更喜欢创建弱引用吗?不过,如果引用较弱,它还需要另一个地方来存放Yummie实例,否则它会立即再次被删除 它是一个循环引用,因为Yummie()。\uuuu class\uuuu包含Yummie,但除非您运行的是非常旧的Python版本,否则由于垃圾收集器的循环检测,这不应该是一个问题。不,这不是循环引用。类Yummie具有引用Yum

既然
Yummie.instance
Yummie
的一个实例,并且
type(Yummie.instance)==Yummie
是真的,那会是循环引用的一个例子吗?我应该更喜欢创建弱引用吗?不过,如果引用较弱,它还需要另一个地方来存放
Yummie
实例,否则它会立即再次被删除

它是一个循环引用,因为
Yummie()。\uuuu class\uuuu
包含
Yummie
,但除非您运行的是非常旧的Python版本,否则由于垃圾收集器的循环检测,这不应该是一个问题。

不,这不是循环引用。类
Yummie
具有引用
Yummie
的单个实例的属性。仅此而已。@Asad但是
Yummie
实例引用了它的类,不是吗?是的,我忽略了这一点(Ignacio的回答指出了这一点)。我考虑的更多的是程序正确性而不是内存使用,循环引用阻止了对相互依赖的方法/对象的评估,因为每个方法/对象都需要先评估另一个。这里的情况并非如此,因为可以定义
Yummie
类,而无需存在
Yummie
的实例。如果您有
instance=Yummie()
,这将是一个循环引用,因为类
Yummie
在没有
Yummie
实例的情况下无法定义,如果未定义类
Yummie
,则无法创建
Yummie
的实例。那不行。
class Yummie(object):
    instance = None
Yummie.instance = Yummie()