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