2017-08-04 50 views
0

我想我可以最好地解释我想要做的例子。如何创建实例将包含自引用属性的类?

因此,在C++中我能做某事这样的:

#include <iostream> 

class Cl 
{ 
public: 
    Cl* recref = this; 
    int i = 5; 
} ob; 

int main() 
{ 
    std::cout << ob.recref->i << '\n'; 
} 

但是在Python我不能做到这一点:

class Cl: 
    recref = self 

有类范围没有self定义。

我该如何实现我想要实现的目标?

+0

为什么你会想要一个类变量指向一个单一实例?辛格尔顿?如果这样设置在'\ __ init__' –

+0

您可以在[SODocs](https://stackoverflow.com/documentation/python/419/classes#t=201708040419305159699) – Rahul

回答

2

我不知道C++代码,你想实现,但在python:

In [81]: class Cl: 
    ...:  def __init__(self): 
    ...:   self.recref = self 

就是用self的方式。

0

你应该初始化您的类的实例:

class C1: 
    def __init__(self, instance1, instance2): 
     self.instance1 = instance1 
     self.instance2 = instance2 

另一个例子:

class c1: 
    def __init__(self): 
     self.instance1 = self 
相关问题