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