import gnsq
class something():
def __init__(self, pb=None, pk=None, address=None):
self.pb = pb
self.pk = pk
self.address = address
def connect(self):
consumer = gnsq.Consumer(self.pb, 'ch', self.address)
@consumer.on_message.connect
def response_handler(consumer, msg):
return msg.body
consumer.start()
我将如何获得 so 的返回值response_handler
,我将能够传递给父函数connect()
,所以当我调用它时,它将返回message.body
来自子函数的值。
我会想到以下内容:
import gnsq
class something():
def __init__(self, pb=None, pk=None, address=None):
self.pb = pb
self.pk = pk
self.address = address
def connect(self):
consumer = gnsq.Consumer(self.pb, 'ch', self.address)
@consumer.on_message.connect
def response_handler(consumer, msg):
return msg.body
consumer.start()
return response_handler
nsq = something('pb', 'pk', 'address')
# should print whatever message.body is
print nsq.connect()
但它不起作用。注意:consumer.start()
正在阻塞