我怎样才能让2个类引用同一个类的实例

时间:2012-05-24 23:05:07

标签: python

我有A班B班和C班。

类A和B可以影响类C.因此它们需要引用类的相同实例。

#a.py
from C import C
Cinstance = C()
Cinstance.add()


#b.py
class b(object)
#i need to refer to 'cinstance' here to control the same instance of the class

#C.py
class C(object)
    def __init__(self):
        self.a=1

    def add(self):
        self.a += 1
        print a

我如何导入和实例化类以使其以这种方式工作?我是编程新手并且还在学习,所以对于我来说,显而易见的事情对我来说仍然有点困难。

3 个答案:

答案 0 :(得分:3)

class A:
    def __init__(self,cInst):
        self.c = cInst

class B:
    def __init__(self,cInst):
        self.c = cInst

cInst = C()

a = A(cInst)
b = B(cInst) 

这样的事可能

答案 1 :(得分:2)

根据您所拥有的内容,我认为最简单的方法是从模块Cinstance导入a

from a import Cinstance

答案 2 :(得分:0)

您可以将A和B的实例传递给C.__init__方法,并将其保存为C的属性。

我在手机上,所以下面的代码未经过测试

class C(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b

>>> c = C(A(), B())