2

次のチュートリアル: http://www.rabbitmq.com/tutorials/tutorial-three-python.htmlには、次のコードがあります。

   result = channel.queue_declare(exclusive=True)
   queue_name = result.method.queue

Pika について文書化されたこの「結果」オブジェクトはどこにありますか? これからアクセスできるすべてを知りたいです。

4

1 に答える 1

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 Webサイトのこの特定の例では、Pikaの文書化されていない機能を使用しているようです。その結果、アプリケーションで独自の名前を生成することになりました。

于 2012-12-12T02:41:13.473 に答える