Python не нуждается в указателях для достижения этой цели, поскольку каждая переменная является ссылкой на объект. Эти ссылки немного отличаются от ссылок C ++ тем, что их можно назначать - очень похоже на указатели в C ++.
Итак, чтобы достичь того, что вы ищете, вам просто нужно сделать что-то вроде этого:
class A(object):
def __init__( self, connections, sum ):
self.connections = connections
self.sum = sum
def passToConnections( self, index ):
self.connections[ index ].receive( self.sum )
def receive( self, input ):
self.sum += input
И просто чтобы доказать, что это работает, как и ожидалось:
>>> a1 = A( [], 0 )
>>> a2 = A( [], 0 )
>>> a3 = A( [ a1, a2 ], 10 )
>>> a3.passToConnections( 0 )
>>> a3.passToConnections( 1 )
>>> a3.passToConnections( 1 )
>>> print a1.sum
10
>>> print a2.sum
20
Итак, как вы можете видеть, мы изменили исходные объекты a1
и a2
, вызвав их через ссылки в a3