最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?教程之blinker?信號(hào)庫

 更新時(shí)間:2022年05月04日 13:34:19   作者:autofelix  
這篇文章主要介紹了python?教程之blinker?信號(hào)庫,文章基于python的相關(guān)資料展開詳細(xì)的內(nèi)容說明。具有一定的參考價(jià)價(jià)值,需要的小伙伴可以參考一下

一、安裝

  • 一個(gè)基于Python的強(qiáng)大的信號(hào)庫,它既支持簡(jiǎn)單的對(duì)象到對(duì)象通信,也支持針對(duì)多個(gè)對(duì)象進(jìn)行組播
  • 支持注冊(cè)全局命名信號(hào),支持自定義命名信號(hào)
  • 支持匿名信號(hào),線程安全
  • 支持與接收者之間的持久連接與短暫連接
  • 通過弱引用實(shí)現(xiàn)與接收者之間的自動(dòng)斷開連接
  • 支持發(fā)送任意大小的數(shù)據(jù),支持收集信號(hào)接收者的返回值
pip install blinker

二、創(chuàng)建發(fā)送信號(hào)

  • 信號(hào)通過 signal() 方法進(jìn)行創(chuàng)建
  • 信號(hào)通過 send() 方法進(jìn)行發(fā)送
from blinker import signal
# 創(chuàng)建一個(gè)信號(hào),并給信號(hào)命名
s = signal('autofelix')
def say(args):
print('我是飛兔小哥')
# 信號(hào)注冊(cè)一個(gè)接收者
s.connect(say)
if "__main__" == __name__:
# 發(fā)送信號(hào)
s.send()

三、匿名信號(hào)

  • blinker也支持匿名信號(hào),就是不需要指定一個(gè)具體的信號(hào)值
  • 創(chuàng)建的每一個(gè)匿名信號(hào)都是互相獨(dú)立的
from blinker import signal
# 創(chuàng)建一個(gè)匿名信號(hào)
s = signal()
def say(args):
print('我是飛兔小哥')
# 信號(hào)注冊(cè)一個(gè)接收者
s.connect(say)
if "__main__" == __name__:
# 發(fā)送信號(hào)
s.send()

四、組播信號(hào)

  • 組播信號(hào)是比較能體現(xiàn)出信號(hào)優(yōu)點(diǎn)的特征
  • 多個(gè)接收者注冊(cè)到信號(hào)上,發(fā)送者只需要發(fā)送一次就能傳遞信息到多個(gè)接收者
from blinker import signal
s = signal('autofelix')
def fans_one(args):
print(f'我是粉絲一號(hào),我關(guān)注了: {args}')
def fans_two(args):
print(f'我是粉絲二號(hào),我關(guān)注了: {args}')
s.connect(fans_one)
s.connect(fans_two)
if "__main__" == __name__:
s.send('飛兔小哥')

五、接受方訂閱主題

  • 只有當(dāng)指定的主題發(fā)送消息時(shí)才發(fā)送給接收方
from blinker import signal
s = signal('autofelix')
def fans(args):
print(f'我是個(gè)小粉絲,{args} 是我的老師')
# 信號(hào)注冊(cè)一個(gè)接收者, 并指定主題
s.connect(animal, sender='飛兔')
if "__main__" == __name__:
for i in ['飛兔', '飛兔小姐姐', '飛兔小哥哥']:
s.send(i)

六、裝飾器用法

  • 除了可以函數(shù)注冊(cè)之外還有更簡(jiǎn)單的信號(hào)注冊(cè)方法,那就是裝飾器
from blinker import signal
s = signal('autofelix')
@s.connect
def fans_one(args):
print(f'我是粉絲一號(hào),我關(guān)注了: {args}')
@s.connect
def fans_two(args):
print(f'我是粉絲二號(hào),我關(guān)注了: {args}')
if "__main__" == __name__:
s.send('飛兔小哥')

七、訂閱主題的裝飾器

  • connect 的注冊(cè)方法用著裝飾器時(shí)有一個(gè)弊端就是不能夠訂閱主題
  • connect_via 方法支持訂閱主題
from blinker import signal
s = signal('autofelix')
@s.connect_via('飛兔')
def fans(args):
print(f'我是個(gè)小粉絲,{args} 是我的老師')
if "__main__" == __name__:
for i in ['飛兔', '飛兔小姐姐', '飛兔小哥哥']:
s.send(i)

八、檢查信號(hào)是否有接收者

  • 如果對(duì)于一個(gè)發(fā)送者發(fā)送消息前要準(zhǔn)備的耗時(shí)很長(zhǎng)
  • 為了避免沒有接收者導(dǎo)致浪費(fèi)性能的情況
  • 可以先檢查某一個(gè)信號(hào)是否有接收者
  • 在確定有接收者的情況下才發(fā)送
from blinker import signal
a1 = signal('autofelix-1')
a2 = signal('autofelix-2')
def fans(sender):
print('我是個(gè)小粉絲')
a1.connect(fans)
if "__main__" == __name__:
res = a1.receivers
print(res)
if res:
a1.send()
res = a2.receivers
print(res)
if res:
a2.send()
else:
print("我是個(gè)偶像")

九、是否訂閱了某個(gè)信號(hào)

  • 檢查訂閱者是否由某一個(gè)信號(hào)
from blinker import signal
a1 = signal('autofelix-1')
a2 = signal('autofelix-2')
def fans(sender):
print('我是個(gè)小粉絲')
a1.connect(fans)
if "__main__" == __name__:
res = a1.has_receivers_for(fans)
print(res)
res = a2.has_receivers_for(fans)
print(res)

到此這篇關(guān)于python 教程之blinker 信號(hào)庫的文章就介紹到這了,更多相關(guān)python 信號(hào)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django xadmin中form_layout添加字段顯示方式

    django xadmin中form_layout添加字段顯示方式

    這篇文章主要介紹了django xadmin中form_layout添加字段顯示方式,具有很好的 參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python利用numpy實(shí)現(xiàn)三層神經(jīng)網(wǎng)絡(luò)的示例代碼

    Python利用numpy實(shí)現(xiàn)三層神經(jīng)網(wǎng)絡(luò)的示例代碼

    這篇文章主要介紹了Python利用numpy實(shí)現(xiàn)三層神經(jīng)網(wǎng)絡(luò)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python中三種輸出格式總結(jié)(%,format,f-string)

    python中三種輸出格式總結(jié)(%,format,f-string)

    在Python語言編程中,我們會(huì)與字符串打交道,那務(wù)必會(huì)輸出字符串來查看字符串的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于python中三種輸出格式的相關(guān)資料,三種格式分別是%,format,f-string,需要的朋友可以參考下
    2022-03-03
  • python打開url并按指定塊讀取網(wǎng)頁內(nèi)容的方法

    python打開url并按指定塊讀取網(wǎng)頁內(nèi)容的方法

    這篇文章主要介紹了python打開url并按指定塊讀取網(wǎng)頁內(nèi)容的方法,涉及Python操作URL及網(wǎng)頁內(nèi)容的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 探索Python int()函數(shù)傳入中文或者字符串會(huì)發(fā)生什么

    探索Python int()函數(shù)傳入中文或者字符串會(huì)發(fā)生什么

    這篇文章主要為大家介紹了Python int()函數(shù)傳入中文或者字符串會(huì)發(fā)生什么,詳細(xì)討論int()函數(shù)的常規(guī)使用以及它如何處理異常輸入,特別是涉及字符串和中文字符的情況
    2024-01-01
  • python模塊引入問題和解決方案

    python模塊引入問題和解決方案

    本文主要介紹了python模塊引入問題和解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python+appium+yaml移動(dòng)端自動(dòng)化測(cè)試框架實(shí)現(xiàn)詳解

    python+appium+yaml移動(dòng)端自動(dòng)化測(cè)試框架實(shí)現(xiàn)詳解

    這篇文章主要介紹了python+appium+yaml移動(dòng)端自動(dòng)化測(cè)試框架實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 利用Python生成文件md5校驗(yàn)值函數(shù)的方法

    利用Python生成文件md5校驗(yàn)值函數(shù)的方法

    這篇文章主要給大家介紹了利用Python生成文件md5校驗(yàn)值函數(shù)的方法,文中給出了詳細(xì)的示例代碼,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 基于Python編寫一個(gè)寶石消消樂小游戲

    基于Python編寫一個(gè)寶石消消樂小游戲

    快過年回家啦用,本文將為大家介紹一個(gè)用python編寫的寶石消消樂游戲用來哄小朋友,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-01-01
  • 如何使用Python代碼創(chuàng)建表格

    如何使用Python代碼創(chuàng)建表格

    如果能夠?qū)⑽覀兊臒o序數(shù)據(jù)快速組織成更易讀的格式,對(duì)于數(shù)據(jù)分析非常有幫助,下面這篇文章主要介紹了關(guān)于如何使用Python代碼創(chuàng)建表格的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06

最新評(píng)論

登封市| 尼勒克县| 邳州市| 鄢陵县| 通辽市| 永丰县| 桂东县| 余姚市| 玉林市| 五常市| 延吉市| 胶州市| 鸡东县| 雅江县| 黄陵县| 府谷县| 乐昌市| 金昌市| 平陆县| 固安县| 札达县| 安陆市| 石楼县| 老河口市| 怀仁县| 星子县| 万载县| 依兰县| 彰化市| 漠河县| 大姚县| 齐齐哈尔市| 石城县| 微山县| 竹山县| 汾阳市| 罗江县| 灵川县| 通许县| 云梦县| 八宿县|