无码人妻丰满熟妇奶水区码,麻豆一区区三,亚洲日韩欧美精品综合,亚洲无码地址

用木蘭編程語(yǔ)言編寫 WebSocket 聊天服務(wù)示例

【安裝:pip install ulang,用法與例程請(qǐng)見 PyPI。源碼位于開源中國(guó)(文末鏈接)。 Python 3.7,源碼文件 UTF-8 編碼

本周發(fā)布木蘭編程語(yǔ)言版本 0.0.14.8。將 Python 框架 tornado自帶的用 WebSocket 實(shí)現(xiàn)聊天的例程改為木蘭實(shí)現(xiàn)。順便將該例程涉及的木蘭與 Python 語(yǔ)法對(duì)比小結(jié),包括本周重現(xiàn)的 super 語(yǔ)法等。

1 實(shí)例演示

用木蘭編程語(yǔ)言編寫 WebSocket 聊天服務(wù)示例

主要木蘭代碼如下(完整代碼見源碼庫(kù))

type 聊天渠道 : tornado.websocket.WebSocketHandler { { 接收端 = set() 歷史 = [] 歷史長(zhǎng)度 = 200 } func $get_compression_options { // Non-None enables compression with default options. return {:} } func $open { 聊天渠道.接收端.add($) } func $on_close { 聊天渠道.接收端.remove($) } func 更新歷史(消息) { // 必須指定類 聊天渠道.歷史.append(消息) if len(聊天渠道.歷史) > 聊天渠道.歷史長(zhǎng)度 { 聊天渠道.歷史 = 聊天渠道.歷史[-聊天渠道.歷史長(zhǎng)度 :] } } func 廣播(消息) { logging.info("發(fā)到%d個(gè)接收端", len(聊天渠道.接收端)) for 某接收端 in 聊天渠道.接收端 { // TODO: try catch 尚待重現(xiàn) //try: 某接收端.write_message(消息) //except: // logging.error("Error sending message", exc_info=True) } } func $on_message(內(nèi)容) { logging.info("收到消息: %r", 內(nèi)容) parsed = tornado.escape.json_decode(內(nèi)容) 消息 = {"id": str(uuid.uuid4()), "body": parsed["body"]} 消息["html"] = tornado.escape.to_basestring( $render_string("message.html", message=消息) ) 聊天渠道.更新歷史(消息) 聊天渠道.廣播(消息) }}

2 與例程涉及的 Python 語(yǔ)法對(duì)比

下面都基于當(dāng)前對(duì)木蘭的認(rèn)識(shí),今后隨重現(xiàn)項(xiàng)目進(jìn)展可能修改

必須(否則報(bào)錯(cuò))

  • 如碰到形參的關(guān)鍵詞為 type,需改為位置形參。如原始例程中的:

define("port", default=8888, help="run on the given port", type=int)

最后一個(gè)形參的 keyword 為 type,正好是木蘭的語(yǔ)法關(guān)鍵詞。因此只能改為位置形參(順便中文化封裝):

func 定義(名稱 : str, 默認(rèn)=nil, 類型=nil, 幫助=nil) { define(名稱, 默認(rèn), 類型, 幫助)}定義("port", 默認(rèn)=8888, 幫助="在此端口運(yùn)行服務(wù)", 類型=int)

  • 木蘭只有靜態(tài)方法(staticmethod)。碰到 Python 的 classmethod 時(shí),引用類變量時(shí)用類名取代 cls。見上面的 更新歷史 方法。
  • 需 tuple() 初始化元組,見前文介紹
  • 所有塊改為 {},取代 Python 中的冒號(hào)
  • class 變 type,用冒號(hào)指定類型,包括指定形參類型、超類等
  • 注釋段用 /* */,注釋行用 //
  • import 變 using
  • None 變 nil
  • def 變 func
  • 【本周】super() 變 super
  • 【本周】不支持 **,改用列舉形參
  • 類變量需用{}包圍
  • 字典初始化 {:}

可選

  • self 變 $,見前文介紹
  • 構(gòu)造函數(shù)用類名而非__init__
  • 無(wú)參數(shù)函數(shù)定義時(shí)可省略 ()

附:代碼量統(tǒng)計(jì)

主要部分的代碼行數(shù)統(tǒng)計(jì),格式為:上次->現(xiàn)在。

  • 木蘭代碼量 2965 -> 3114
    • 編輯器,實(shí)現(xiàn)與測(cè)試都是木蘭代碼:432 -> 431 (在為分為前后端實(shí)現(xiàn)調(diào)研網(wǎng)絡(luò)服務(wù)框架)
    • 木蘭測(cè)試用例,包括部分實(shí)用小程序(如井字棋):2533 -> 2683

  • Python 代碼量(木蘭實(shí)現(xiàn)與測(cè)試框架):2594 -> 2612
    • 分析器/語(yǔ)法分析器.py:1008 -> 1019
    • 分析器/詞法分析器.py:204 -> 207
    • 測(cè)試/運(yùn)行所有.py,檢驗(yàn)所有木蘭測(cè)試代碼片段:192 -> 194
    • 環(huán)境.py,定義全局方法:171 -> 172
    • 分析器/語(yǔ)法成分.py,從語(yǔ)法分析器中提取出來(lái)的枚舉常量:81 -> 82
    • 功用/反饋信息.py:65 -> 67
    • 測(cè)試/unittest/語(yǔ)法樹.py,確保生成的語(yǔ)法樹與原始版本一致:67 -> 66
    • 未變
      • 分析器/語(yǔ)法樹.py:202
      • 交互.py,交互環(huán)境(REPL):138
      • 中.py,主程序:74
      • 功用/調(diào)試輔助.py,:57
      • setup.py, 34
      • 分析器/錯(cuò)誤.py:17
      • 測(cè)試/unittest/交互.py,交互環(huán)境相關(guān)測(cè)試:28

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2023年3月15日 上午10:28
下一篇 2023年3月15日 上午10:44

相關(guān)推薦

  • 論文參考文獻(xiàn)的一些格式要求有哪些?(論文參考文獻(xiàn)的一些格式要求有哪些內(nèi)容)

    參考文獻(xiàn)相信對(duì)于論文寫作的學(xué)者來(lái)說(shuō)都知道是做什么的吧,論文的參考文獻(xiàn)寫作主要是為了指為撰寫論文而引用已經(jīng)發(fā)表的有關(guān)文獻(xiàn),是論文不可缺少的重要組成部分.參考文獻(xiàn)反映研究工作的背景和依…

    科研百科 2024年5月14日
    45
  • 科研項(xiàng)目不可行

    科研項(xiàng)目不可行為 在現(xiàn)代科技的發(fā)展下,科研項(xiàng)目已經(jīng)成為了科學(xué)研究的重要工具。然而,科研項(xiàng)目也有一些不可行為,這些行為會(huì)對(duì)科學(xué)研究產(chǎn)生負(fù)面影響,甚至威脅到人類的生存。 不可行為包括:…

    科研百科 2025年3月12日
    1
  • 黨建活動(dòng)交流提問(wèn)

    黨建活動(dòng)交流提問(wèn) 在黨建活動(dòng)中,交流和提問(wèn)是非常重要的環(huán)節(jié)。通過(guò)交流,我們可以更好地了解彼此的想法和需求,從而更好地推進(jìn)活動(dòng)的進(jìn)程。在這篇文章中,我將分享一些黨建活動(dòng)中的交流提問(wèn)方…

    科研百科 2024年10月7日
    12
  • 以“稅心”護(hù)“綠心” 湘潭高新區(qū)稅務(wù)局全力推動(dòng)基層黨建文化建設(shè)

    湖南日?qǐng)?bào)·新湖南客戶端4月28日訊(通訊員 蘇菁青)近日,湘潭市稅務(wù)局黨委書記、局長(zhǎng)胡巍一行到湘潭高新區(qū)稅務(wù)局昭山稅務(wù)所,走訪慰問(wèn)基層一線稅務(wù)干部職工,調(diào)研昭山稅務(wù)所“綠色稅收”發(fā)…

    科研百科 2024年2月6日
    130
  • guizhousheng 科研經(jīng)費(fèi)管理辦法

    《zhousheng 科研經(jīng)費(fèi)管理辦法》 近年來(lái),隨著科學(xué)技術(shù)的快速發(fā)展,科研經(jīng)費(fèi)的重要性日益凸顯。為了規(guī)范zhousheng 科研經(jīng)費(fèi)的管理和使用,提高科研經(jīng)費(fèi)的使用效率,我們制…

    科研百科 2024年11月18日
    4
  • 中國(guó)名校暑期科研項(xiàng)目

    中國(guó)名校暑期科研項(xiàng)目:探索科技與教育的結(jié)合 近年來(lái),隨著科技的快速發(fā)展,教育領(lǐng)域也面臨著越來(lái)越多的挑戰(zhàn)。如何更好地將科技與教育相結(jié)合,成為了教育領(lǐng)域中的一個(gè)重要問(wèn)題。而在中國(guó),許多…

    科研百科 2025年3月30日
    2
  • 科研項(xiàng)目名詞解釋

    科研項(xiàng)目名詞解釋 科研項(xiàng)目名詞解釋是描述科研項(xiàng)目的術(shù)語(yǔ),用于解釋科研項(xiàng)目中的各種術(shù)語(yǔ)和概念。這些名詞解釋可以幫助讀者更好地理解科研項(xiàng)目,并為研究人員提供參考。 在科研項(xiàng)目中,常常會(huì)…

    科研百科 2025年2月28日
    3
  • 市級(jí)科研項(xiàng)目花多少錢做

    市級(jí)科研項(xiàng)目花多少錢 隨著科技的不斷發(fā)展,科研項(xiàng)目越來(lái)越多,但是市級(jí)科研項(xiàng)目的花費(fèi)也是越來(lái)越多的。那么,市級(jí)科研項(xiàng)目的花費(fèi)是多少?下面我們來(lái)一起了解一下。 首先,我們需要考慮市級(jí)科…

    科研百科 2025年5月10日
    4
  • 圖書館管理系統(tǒng)項(xiàng)目規(guī)模

    圖書館管理系統(tǒng)項(xiàng)目規(guī)模 圖書館管理系統(tǒng)是一種用于管理圖書館的軟件系統(tǒng),它可以幫助圖書館管理員更好地管理圖書館的藏書、讀者信息、借閱、歸還等業(yè)務(wù)流程。隨著圖書館事業(yè)的不斷發(fā)展,圖書館…

    科研百科 2025年1月16日
    5
  • 世界十大頂級(jí)科研項(xiàng)目

    世界十大頂級(jí)科研項(xiàng)目: 1. 暗物質(zhì)探測(cè)任務(wù)暗物質(zhì)是宇宙學(xué)中的一個(gè)新興領(lǐng)域,致力于理解宇宙的本質(zhì)。目前,科學(xué)家們已經(jīng)探測(cè)到了暗物質(zhì)的存在,但對(duì)其性質(zhì)和構(gòu)成還一無(wú)所知。暗物質(zhì)探測(cè)任務(wù)…

    科研百科 2025年4月27日
    8
久久伊人欧美国产一区二区| 久草日B视频一二三区| 欧美日逼吃奶| 熟女福利视频网| 成人国产黄| 免费无删减AV高清不卡| 天天干每日射夜夜操| 色综合天天91综合网| 亚洲天堂成人一起操| 国产一卡久久精品| 伊色成人综合| 九九成人福利导航| 一区在线欧美| 欧美三级98久久| 产乱码精品一区二区三| 一区在线亚洲| 久久人人干天天干| 100九九热| 中文无码最新在线播放| 麻豆mv一区二区三区| 午夜成人电影一区二区| 亚洲手机在线观看AV| 谷原希美无码AV片在线看| 久久久精品你懂的| 久久瑟| tiantian在线精品视频| 欧美成人一区二区日韩| B·B在线免费观看| 欧美大屌日屄视频| 日韩欧美日韩精品中文| 日韓福利片区| 九九黄色小精品| 欧美春色青青综合社区| 三级久久久.A| 一二三日韩在线不卡| 欧美一级大黄片大黄片| 视频一区二区二区| 欧美操逼视频精品| 国产精品一区二区中文字幕三区 | 韩日第一男人天堂AV| 黄色小说视频久久久|