在以下教程中:http://www.rabbitmq.com/tutorials/tutorial-three-python.html,有以下代码。
result = channel.queue_declare(exclusive=True)
queue_name = result.method.queue
Pika记录了这个“结果”对象在哪里?我想知道我能从中获得的一切。
答案 0 :(得分:2)
昨晚我忘记了这件事。 Python通常是自我记录的,尤其是“dir”功能。在python中运行它,然后在结果对象上运行“result.__class__
”表明这是Pika中的METHOD对象。
>>> r
<METHOD(['frame_type=1', 'channel_number=1', 'method=<Exchange.DeclareOk>'])>
>>> r.__class__
<class 'pika.frame.Method'>
>>> dir(r)
['INDEX', 'NAME', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_marshal', 'channel_number', 'frame_type', 'marshal', 'method']
一些谷歌搜索带我到这些文档:https://pika.readthedocs.org/en/latest/frame.html#method
...不幸的是
This class level documentation is not intended for use by those using Pika in their applications. This documentation is for those who are extending Pika or otherwise working on the driver itself.
所以看来RabbitMQ网站上的这个具体例子使用了Pika的一个未记录的功能。因此,我最终只是在我的应用程序中生成了自己的唯一名称。