Django和Flask使用信號 - 後者使用Blinker庫。在Python,Blinker和Python pubsub庫中,信號和pubsub如何比較?我什麼時候可以使用其中一種?Python - 信號與pubsub有什麼不同?
回答
Blinker docs and PubSub docs。
至於Blinker
和PubSub
去,他們是同樣的事情。區別在於他們如何去做:
與Blinker
當您訂閱一個信號,你給出的信號的名稱,當你激活信號,你傳遞激活對象。
使用PubSub
當您訂閱偵聽器時,您提供了名稱(與Blinker
相同),但是當您通知偵聽器時,您直接將數據作爲關鍵字參數傳遞。由於傳遞數據的關鍵字參數方法,可以使用PubSub
進行更多的安全檢查。
就我個人而言,我會去與Signals
,因爲它符合我的想法更好,但PubSub
當然也有一席之地。
死靈法師獎! :) – 2013-02-14 00:53:38
以上PubSub url鏈接已死;嘗試:http://pubsub.sourceforge.net/ – DevPlayer 2015-01-31 00:52:20
@DevPlayer:謝謝,更新我的鏈接。 – 2015-08-31 15:06:26
這可能清理髮布訂閱究竟如何涉及信號:http://pubsub.sourceforge.net/apidocs/concepts.html
發佈訂閱便於在應用程序內的部件的解耦(可調用,模塊,包)。它通過:應用程序的
- 允許部分,而不必知道
- 發送消息到「應用程序的其餘部分,」如果消息將被處理:
- 也許消息將被完全忽略,
- 或由應用程序的許多不同部分處理;
- 消息將如何處理:
- 究竟會與消息及其內容進行;
- 以什麼順序,任何給定的消息將被髮送到應用程序的其餘部分;應用程序的
- 允許部分接收和處理來自「應用程序的其餘部分」的消息,而無需知道是誰發送的消息。
監聽器是「希望接收消息的應用程序的一部分」。監聽者訂閱一個或多個主題。發件人是應用程序的任何部分,要求Pubsub發送給定主題的消息。發件人提供數據(如果有的話)。 Pubsub會將消息(包括任何數據)發送給消息主題的所有聽衆。
這些東西不都適用於信號和接收器嗎? – matthewwithanm 2012-10-10 03:18:33
- 1. QTableWidget的信號有什麼不同?
- 2. 爲什麼/ bin/kill的有效信號與kill不同?
- 3. IPython與Python有什麼不同?
- 4. <c:out/>單引號與雙引號。有什麼不同?
- 5. 「((...))」與「(...)」有什麼不同?
- 6. 信號post_delete和post_save的使用有什麼不同嗎?
- 7. os.system與命令行有什麼不同?
- 8. 我的python 3代碼與python 2有什麼不同?
- 9. App.OnSearchActivated與App.OnActivated與ActivationKind.Search有什麼不同?
- 10. subprocess.call與os.system有什麼不同
- 11. 什麼組合鍵與信號相關
- 12. Linux中POSIX可靠信號與POSIX實時信號有什麼區別?
- 13. DataStax Python Driver和cqlengine有什麼不同?
- 14. 「長度和長度」與Python中的「長度」有什麼不同?
- 15. (Python)使用`is`時,`2`與`[2]`有什麼不同?
- 16. python雞蛋與常規包裝有什麼不同?
- 17. StreamCodec與Python中的編解碼器有什麼不同?
- 18. vim與python(ruby)的支持有什麼不同?
- 19. 接口C(或C++)與Python有什麼不同的選項?
- 20. SIGCLD和SIGCHLD信號有什麼區別?
- 21. 爲什麼Django中沒有response_finished信號?
- 22. Django:信號有什麼好處?
- 23. 爲什麼沒有PWM信號出來?
- 24. 與信號燈同步
- 25. $()與重定向有什麼不同?
- 26. Web服務與api有什麼不同?
- 27. listview與listactivity有什麼不同
- 28. 與ramda.js代碼有什麼不同?
- 29. Comparator與包裝類有什麼不同?
- 30. This.value與值,有什麼不同?
我很喜歡尋找來自某人在這條路上的決定性答案,例如「他們是同一件事」或「PubSub通常涉及X而信號通常意味着Y.」 – 2011-11-10 22:16:09