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()正在阻塞