亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        透過事件處理了解簡(jiǎn)單的多線程

        2019-09-10 05:08:20
        電腦報(bào) 2019年12期
        關(guān)鍵詞:定義

        Python極客戰(zhàn)記關(guān)卡主要是偏向鍛煉用戶的基本語(yǔ)法結(jié)構(gòu)和計(jì)算機(jī)思維,讓大家熟悉極客戰(zhàn)記的操作與代碼的使用。來到了森林,關(guān)卡將會(huì)變得更多更難,同樣,到了森林,大家就正式開始接觸編程的幾大重要知識(shí)點(diǎn):條件判斷、運(yùn)算符、函數(shù)、對(duì)象屬性。

        關(guān)卡簡(jiǎn)介

        事件處理函數(shù),看起來本關(guān)與它前面的幾關(guān)考查內(nèi)容相同,其實(shí)不然,如果忽略了事件處理函數(shù)的某個(gè)特點(diǎn),那你可能就無法通過本關(guān)了。其實(shí)大多數(shù)關(guān)卡需要填充的代碼并不多,大家如果完完全全按照注釋填寫,便可順利過關(guān),但如果不熟悉考查的知識(shí)點(diǎn),多數(shù)同學(xué)都會(huì)按自己的想法對(duì)注釋要求的代碼“畫蛇添足”,導(dǎo)致無法過關(guān),本關(guān)也是如此。

        事件處理函數(shù)

        先來了解一下事件處理函數(shù),我們初次接觸了這個(gè)知識(shí)點(diǎn):每個(gè)關(guān)卡的目標(biāo)頁(yè)和提示頁(yè)(圖1),都會(huì)包含對(duì)當(dāng)前關(guān)卡涉及的新知識(shí)點(diǎn)的講解,同學(xué)們每次都有認(rèn)真閱讀嗎?

        函數(shù)大家已經(jīng)比較熟悉了,而事件(Events)卻是一個(gè)新的概念,什么是事件?當(dāng)你的英雄說話發(fā)出聲音時(shí),聽見聲音的人就是發(fā)生了聽見(hear)事件,當(dāng)你的英雄出現(xiàn)在游戲里時(shí),你的英雄就是發(fā)生了生成(spawn)事件。因此當(dāng)你的英雄做某事時(shí),則必然會(huì)有相應(yīng)的事件發(fā)生。

        而事件處理函數(shù),可以看作一個(gè)監(jiān)測(cè)工具,或者說一個(gè)更高級(jí)的判斷代碼,時(shí)刻檢測(cè)著某事件,若發(fā)生了,則調(diào)用相應(yīng)的函數(shù)。因此,事件處理函數(shù)的使用格式為(圖2):pet.on(發(fā)生的事件名,調(diào)用的函數(shù))。這里有一個(gè)易錯(cuò)點(diǎn),要監(jiān)測(cè)的事件,我們要填寫的是事件的名字,也就是字符串,因此此處的事件名必須是包含在雙引號(hào)內(nèi)。

        如果你到了這一關(guān)還不了解字符串的話,問題就比較嚴(yán)重了,可以點(diǎn)擊鏈接,了解字符串的相關(guān)知識(shí)。而要調(diào)用的函數(shù),我們直接把這個(gè)函數(shù)的函數(shù)名寫上去即可,不需要用雙引號(hào)包括。

        可能到這里大家會(huì)有一個(gè)疑問,為什么事件名是一個(gè)字符串,而函數(shù)名不是字符串,不需要加雙引號(hào)呢?這是因?yàn)閯?chuàng)建一個(gè)函數(shù),實(shí)際上就是定義一個(gè)函數(shù):def 函數(shù)名,此時(shí)你的函數(shù)名就被關(guān)鍵字def進(jìn)行了定義,定義以后,這個(gè)函數(shù)名就不再是一個(gè)名字了,它變成了一個(gè)函數(shù),它代表的就是這個(gè)函數(shù),它成為了一個(gè)有定義的對(duì)象。

        也就是說,雖然我們明白,這個(gè)單詞,它是這個(gè)函數(shù)的名字,但是電腦沒有名字這種概念,它只知道,這個(gè)單詞指的就是這個(gè)函數(shù)。即:函數(shù)名被定義以后,成為了一個(gè)對(duì)象,因此電腦就可以直接通過調(diào)用這個(gè)單詞來調(diào)用函數(shù)。因此函數(shù)的調(diào)用則不需要使用雙引號(hào)。

        明白了事件函數(shù)的使用方法以后,我們?cè)倏纯词录幚砗瘮?shù)的特點(diǎn)。上方有提到,事件處理函數(shù)就像一個(gè)時(shí)刻監(jiān)測(cè)事件的機(jī)器,因此它一旦被運(yùn)行,被啟動(dòng)了,就永遠(yuǎn)不會(huì)結(jié)束,會(huì)一直執(zhí)行它的任務(wù):監(jiān)測(cè)并調(diào)用相應(yīng)函數(shù)。這與普通的代碼是有區(qū)別的,大家都知道,正常的代碼,都是按自上而下的順序執(zhí)行,執(zhí)行完了,這一行代碼就結(jié)束了。因此我們的大部分通關(guān)代碼都是放在一個(gè)while-True無限循環(huán)內(nèi)的,為的就是利用循環(huán),讓我們的代碼無限運(yùn)行,不要一次性就結(jié)束了。

        而事件處理函數(shù)則非常方便,這行代碼一旦被執(zhí)行,它的監(jiān)測(cè)工作就永遠(yuǎn)不會(huì)停止,也不會(huì)影響其他代碼的運(yùn)行,就像一個(gè)幫你做事的智能機(jī)器人,你可以做你自己的事,而一旦發(fā)生了事件,它就會(huì)盡職盡責(zé)地運(yùn)行需要運(yùn)行的函數(shù)。那么此時(shí)最大的變化即是:執(zhí)行代碼的人,從一個(gè)人(你的英雄),變成了兩個(gè)人(你的英雄和你的智能機(jī)器人),大大提高了代碼的效率,這就是多線程的思想。明白了事件處理函數(shù),我們就可以看看我們的關(guān)卡代碼了。

        現(xiàn)在的你,應(yīng)該可以一眼就能看出當(dāng)前代碼的結(jié)構(gòu)了。4到7行(圖3),代碼定義了一個(gè)叫sayTwo的函數(shù),它和我們常見的函數(shù)有個(gè)區(qū)別,它自帶了一個(gè)叫做event的參數(shù),這個(gè)參數(shù)用于接收發(fā)生的事件,目前暫時(shí)沒有什么作用,屬于可有可無的存在。第9行,則是使用pet.on事件處理函數(shù),來監(jiān)測(cè)“hear”事件的發(fā)生,調(diào)用sayTwo函數(shù),那么此時(shí)通關(guān)思路為:編寫sayTwo函數(shù)與事件處理函數(shù)。

        英雄說話提問

        觸發(fā)事件處理函數(shù),調(diào)用sayTwo函數(shù)讓寵物回答。此時(shí),存在一個(gè)易錯(cuò)點(diǎn),有的同學(xué)認(rèn)為,英雄此時(shí)提了3個(gè)問題,所以寵物需要回答3次,所以他的代碼是這樣的:在sayTwo函數(shù)里讓寵物連續(xù)回答了3次答案(圖4)。

        然后就會(huì)發(fā)現(xiàn)并不能過關(guān)。上文中有提到事件處理函數(shù)是一個(gè)時(shí)刻運(yùn)行永不停止的機(jī)器,也就是說無需在sayTwo函數(shù)里寫3次回答,游戲里每發(fā)生一次說話,寵物都能執(zhí)行一次回答,因此英雄提了3次問題,寵物就發(fā)生了3次hear事件,則相應(yīng)的,寵物會(huì)按順序執(zhí)行3次sayTwo函數(shù)。試想,如果你在sayTwo函數(shù)里,填寫了三句回答,那么此時(shí)你們的對(duì)話就變成了:

        英雄:一加一等于幾?寵物:2,英雄:x^3 - 6x^2 + 12x - 8 = 0,x等于多少?寵物:2,英雄:火星有多少衛(wèi)星?寵物:2,寵物的每次回答都連續(xù)說了2,而正確答案其實(shí)就是2,僅有一個(gè),不能再多,所以無法過關(guān)。因此將多余的兩次回答刪去即可過關(guān)。通關(guān)代碼如圖5。

        猜你喜歡
        定義
        以愛之名,定義成長(zhǎng)
        活用定義巧解統(tǒng)計(jì)概率解答題
        例談橢圓的定義及其應(yīng)用
        題在書外 根在書中——圓錐曲線第三定義在教材和高考中的滲透
        永遠(yuǎn)不要用“起點(diǎn)”定義自己
        海峽姐妹(2020年9期)2021-01-04 01:35:44
        嚴(yán)昊:不定義終點(diǎn) 一直在路上
        定義“風(fēng)格”
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        有壹手——重新定義快修連鎖
        修辭學(xué)的重大定義
        中文字幕日韩人妻在线视频| 国产成人精品aaaa视频一区| 国产av成人精品播放| 国产美女三级视频网站| 青青草视频在线免费观看91| 亚洲麻豆视频免费观看| 久久久久99精品成人片| 性一交一乱一伦一色一情孩交| 国产极品美女高潮无套在线观看 | 日韩极品在线观看视频| 美女很黄很色国产av| 中文人妻熟妇乱又伦精品| 最近在线更新8中文字幕免费| 丁香综合网| 国产成人无精品久久久| 少妇高潮精品正在线播放| 亚洲精品一品区二品区三区| wwww亚洲熟妇久久久久| h国产视频| 国产成人色污在线观看| av在线播放亚洲天堂| 人妻久久久一区二区三区蜜臀| 中文无码成人免费视频在线观看| 永久免费观看国产裸体美女| 亚洲AⅤ无码国精品中文字慕| 国产精品久久一区性色a| 日本一区二区免费高清| 免费a级毛片在线播放不收费| 无码日韩精品一区二区三区免费 | 国内精品久久久久伊人av| 亚洲小说区图片区另类春色| 亚洲tv精品一区二区三区| 日韩精品极品免费观看| 国产一区二区长腿丝袜高跟鞋| 亚洲精品久久久久中文字幕| 国产欧美成人| 中文字幕人妻丝袜成熟乱| 亚洲精品国产熟女久久久| 狠狠色丁香婷婷久久综合| 国产成人精品一区二区视频| 四虎精品国产一区二区三区|