Python标准的处理方式支持您。在python中,每个变量都是一个引用。在class A:
def __init__(self, name, lsum):
self.__name = name
self.__sum = lsum
self.__connections = []
def add_connection(self, con):
self.__connections.append(con)
def send_signal(self, cidx):
print("Send signal from [%s] to [%s]" %
(self.__name, self.__connections[cidx].__name))
self.__connections[cidx].receive(self.__sum)
def receive(self, lsum):
print("Add [%s] to [%s] in [%s]" % (lsum, self.__sum, self.__name))
self.__sum += lsum
def get_sum(self):
return self.__sum
a = A("Obj1", 10)
b = A("Obj2", 20)
c = A("Obj3", 30)
a.add_connection(b)
a.add_connection(c)
a.send_signal(0)
a.send_signal(1)
print("Sum A [%s]" % a.get_sum())
print("Sum B [%s]" % b.get_sum())
print("Sum C [%s]" % c.get_sum())
输出:
^{pr2}$