如何让对象在 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()
方法在 n1
的 connections
列表中添加 n2
时,您正在实例之间创建 link。
如果您打印 n1.connetions
和 n2
,您会发现它们指向内存中的同一个对象。因此,您可以如下定义 fire()
方法以及 receive()
方法:
def receive(self): pass
def fire(self):
# do something
for n in self.connections:
n.receive()
我正在为 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()
方法在 n1
的 connections
列表中添加 n2
时,您正在实例之间创建 link。
如果您打印 n1.connetions
和 n2
,您会发现它们指向内存中的同一个对象。因此,您可以如下定义 fire()
方法以及 receive()
方法:
def receive(self): pass
def fire(self):
# do something
for n in self.connections:
n.receive()