如何让对象在 Python 中相互通信?

How can I make Objects communicate with each other in Python?

我正在为 Replit 上的 Neurons 做一个小项目。

我制作了一个名为 Neurons 的 class。我设置了connections = []。 我创建了一个名为 connect() 的函数来通过突触连接两个神经元。 如果一个神经元发射,connections 列表中的所有其他神经元都会收到信号。

如何让同一个 Class 中的两个不同对象相互通信,以便神经元知道它们的伙伴之一是否刚刚向它们开火?

代码如下:

class Neuron: 
  def __init__(self, type='interneuron'):
    self.type = type
    self.connections = []

  def connect(self, neuron):
    self.connections.append(neuron)

  def receive(self): pass

  def fire(self): pass


n1 = Neuron()
n2 = Neuron('motor')
n1.connect(n2)

这个 link 的重发在这里:https://replit.com/@EmmaGao8/Can-I-make-Neurons#main.py

感谢您的时间和考虑。

您可以遍历所有其他神经元并执行 receive 功能。

例如:

def fire(self):
    for other in self.connections:
        other.receive() #and whatever other things you want

def receive(self):
    print("Signal Received!") #or whatever else you want

当您使用 Neuron class 的 connect() 方法在 n1connections 列表中添加 n2 时,您正在实例之间创建 link。

如果您打印 n1.connetionsn2,您会发现它们指向内存中的同一个对象。因此,您可以如下定义 fire() 方法以及 receive() 方法:

def receive(self): pass

def fire(self):
    # do something
    for n in self.connections:
        n.receive()