如何定義Python函數(shù)說(shuō)明
若先定義映射的概念,可以簡(jiǎn)單定義函數(shù)為,定義在非空數(shù)集之間的映射稱為Python函數(shù)。 say_id就是對(duì)象的函數(shù),你能夠調(diào)用它。每個(gè)對(duì)象的函數(shù)都需要一個(gè)self參數(shù),表示[color]這個(gè)對(duì)象。
而且對(duì)象能夠把數(shù)據(jù)和操作數(shù)據(jù)的Python函數(shù)放在一起,能夠比較清晰。雖然有所謂的數(shù)據(jù)隱藏的概念,但是在Python中其實(shí)就是一個(gè)不要直接調(diào)用對(duì)象中的數(shù)據(jù)的約定。而要用一個(gè)函數(shù)作為中轉(zhuǎn)。其實(shí)不懂面向?qū)ο蠛苷#鋵?shí)有的時(shí)候就是要在用的中間感悟的。什么時(shí)候把用函數(shù)編程用牛了。
用出個(gè)道道來(lái)了,說(shuō)不定你已經(jīng)感覺(jué)到了什么是面向?qū)ο缶幊?。另外:所謂什么OO,都是一些認(rèn)為規(guī)定,不用語(yǔ)法支持,只要心中有這個(gè)想法(什么想法?自己悟?。湍軌?qū)懗鯫O的代碼,不管你用的是什么語(yǔ)言,什么語(yǔ)法。
圖形界面的奧秘其實(shí)并不深?yuàn)W。我相信很多人學(xué)習(xí)windows編程都是從寫(xiě)一個(gè)窗口開(kāi)始的,而且都是從嘗試?yán)斫饽莻€(gè)消息和事件驅(qū)動(dòng)的模型入手的。大體的過(guò)程是這樣的,窗口就是用象素畫(huà)出來(lái)的。你可以把一個(gè)窗口想象成一個(gè)窗口,也可以把窗口看成一堆象素的集合。就像有人說(shuō)看女色不過(guò)是皮肉色相一樣。
而且窗口中的按鈕,編輯礦,各種圖標(biāo),無(wú)論是什么看起來(lái)像一個(gè)”物體“的東西,其實(shí)本質(zhì)上都是有應(yīng)用程序或者是庫(kù)或者是操作系統(tǒng)調(diào)用顯卡的驅(qū)動(dòng),通過(guò)顯卡的功能在屏幕上繪畫(huà)一些點(diǎn)出來(lái)。而所謂的”物體“有很多稱法,在windows中一般成為控件(control)。
而對(duì)于圖形界面的操控一般是通過(guò)鼠標(biāo)和鍵盤(pán)來(lái)完成的。鼠標(biāo)在屏幕上有一個(gè)自己的形象,那就是一個(gè)箭頭(當(dāng)然你也可以調(diào)整這個(gè)圖形為其他好玩的東西,it is your freedom)。而鍵盤(pán)呢則一般表示為一個(gè)虛線的框,表示這個(gè)是鍵盤(pán)的”焦點(diǎn)“所在的地方。
或者是編輯框中閃動(dòng)的豎杠。Python函數(shù)這兩點(diǎn)中有一個(gè)共同點(diǎn),就是都有一個(gè)位置來(lái)確定要操作的對(duì)象。你點(diǎn)下鼠標(biāo)的時(shí)候,你操作的就是鼠標(biāo)的箭頭***指向的那個(gè)空間,而鍵盤(pán)按下也是在其焦點(diǎn)所在的控件那兒放聲。
發(fā)生的是什么呢?發(fā)生的過(guò)程從硬件層面到軟件層面之后,最終是被操作系統(tǒng)接收。操作系統(tǒng)能夠知道你是點(diǎn)擊的是鼠標(biāo)還是鍵盤(pán),在什么一個(gè)地方點(diǎn)下的,而且按下的是左鍵還是右鍵。操作系統(tǒng)還知道當(dāng)前窗口各處擺放的位置。
綜合各路的信息,操作系統(tǒng)就能夠知道把這個(gè)”事件“作為”消息“發(fā)送給哪個(gè)窗口來(lái)處理。從中應(yīng)該能夠明白什么叫事件,而消息呢則是一個(gè)C中的結(jié)構(gòu)體,其中有幾個(gè)field中間放了有關(guān)這個(gè)事件的信息。
然后就像一封信一樣從操作系統(tǒng)投遞到了窗口所在的應(yīng)用程序。然后應(yīng)用程序有一個(gè)事先注冊(cè)的”窗口過(guò)程“,其實(shí)就是一個(gè)函數(shù),用來(lái)接收這封“信”。其實(shí)就是接收到傳過(guò)來(lái)的參數(shù)。
然后再進(jìn)行一些判斷,作出一定的響應(yīng)。這個(gè)就是所謂的事件驅(qū)動(dòng)。在沒(méi)有冗長(zhǎng)的代碼,和展示所有細(xì)節(jié)的情況下,如果你真的以前對(duì)這個(gè)過(guò)程一無(wú)所知,肯定會(huì)覺(jué)得非常茫然。這個(gè)一筆帶過(guò)的敘述其實(shí)只是讓你有一個(gè)感性的認(rèn)識(shí)。其實(shí)在Python中使用窗口根本不用管諸葛么多。
基本上只是把自己要的窗口和控件,給一些位置的參數(shù),一些文字的提示內(nèi)容的參數(shù)就能把窗口擺好,顯示出來(lái)。然后再通過(guò)代碼告訴Python函數(shù),當(dāng)“這個(gè)按鈕按下的時(shí)候執(zhí)行這個(gè)函數(shù)”,然后就能讓窗口有響應(yīng)。
***記得給一個(gè)退出窗口的辦法就一切OK了。其中能省的復(fù)雜度基本上都被庫(kù)給隱藏掉了。付出的代價(jià)是慢一些,但是我就不相信你能感覺(jué)出來(lái),除非你用的電腦連vcd都看不流暢。所以大可放心的享受這種便利。
【編輯推薦】