深度剖析Python功能全解析
Python語言是一種清晰的語言的另一個意思是,它的作者有意的設計限制性很強的語法,使得不好的編程習慣,對于Python功能在下面文章您會看到他的一些新穎獨特的功能。
有關Python功能更詳細說明,請您本地的書店找 Mark Lutz 寫的 O'Reilly 這本書,或者閱讀隨 Python(Guido Rossum 著,Python 的實際作者)一起的文檔。***個有趣的事是這個應用程序處理命令行。列表 sys.argv 是命令行,為了使用它您需要理解 Python 列表語法。該示例用的語法很基本,但這足夠讓您理解這個程序了。
接下來,為了在調試時易于使用,定義一個 MsgBox 函數。注意,用于函數聲明和類方法聲明的語法正好相同。唯一的區別是類方法需要帶參數 self,該參數包含了正在調用的對象的引用。(當然,您不一定要稱它為 "self"。但如果不這樣做,您會迷惑的。)
真正有趣的是在更為復雜的 __init__ 方法。這里,我們沒有構建象上例一樣的簡單的、缺乏控件的菜單,而是構建了一個菜單欄,并附加菜單事件到回調例程,以及構建窗口分割欄、樹控件和編輯控件。
您可以撇去這些來看整個工作怎樣。(如果您以前未做過 GUI 編程,往下看,您會覺得很困難。)Visual Basic 用一種幕后的方式可以做所有這些,但如果在文本編輯器僅僅打開表格文件。
您仍然可以看到它。如果您曾用 C/C++ 做過 GUI 工作,那會覺得很熟悉。一旦有構造了的窗口,接下來我們就可以來看程序的實際代碼。首先,在方法 __init__ 后有兩個用于載入和保存項目文件的方法。
在那可以看到 Python 如何用 open 等等來處理文件 I/O。注意,事實上,?乇瘴募?且恢智崴傻氖? -- 正如它所發生的那樣,對于 Python 來講,文件句柄僅僅是內存管理的對象,且該對象由計數器引用。
當該引用變為無效時,Python功能,并會清除它,這時文件會自動關閉。也有不能完全信任的情形(文件不能自動關閉)。例如,您將再次打開已寫的文件,并讀它。這時,您要明確地關閉它。這個問題就是無用信息收集的問題(非 C 的人喜歡討論的問題)。
載入/保存函數的另一個有趣的特性是他們會碰到由壞文件調用產生的例外( IOError 例外)。我讓代碼來說明自己,但那是您如何做的,孩子們。新代碼剩下的問題是事件處理程序,用于處理在程序執行過程中所碰到的。我再次讓程序自己來說明大部分。注意。
使用一般的對話框( wxMessageDialog、wxFileDialog 和 wxTextEntryDialog)來處理許多常規用戶交互。這些調用與“常規”Windows 編程的相應用法有一點不同,這里我只給您一些線索。
首先,對話框是一個由合理的調用創建的對象,它用 ShowModal() 顯示,用完后并破壞它;其次,用戶單擊的按鈕作為返回值從 ShowModal() 返回,用對話框附屬的方法可得到其它值。例如,在文件對話框交互期間,用戶選擇的路徑是作為 dlg.GetPath() 而獲得。這與 Windows API 的工作方式相當不同。正是這樣您知道的。
文檔狀況讓我說,wxWindows API 的文檔處于……開發中。這個平臺***的弱點是缺乏好的文檔,我正在積極地改變這種狀況。下半年情況會有所好轉。同時,Python 本身有一些好的書籍,其中Python功能的在線文檔就不差。對于 wxWindows,C++ 的文檔很好。
有時,在 Python功能中,如何使這些文檔合理些,是相當神秘的。在那里,有一些具體的 Python 注釋,但在很多情況下。您會發現必須要讀隨 wxPython 一起的演示代碼,或者,必須向郵件列表中的專家詢問您的問題。幸運地是,這些專家是“有跡可尋”的。