- Python面向對象編程:構建游戲和GUI
- (美)艾維·卡爾布
- 510字
- 2023-06-29 17:17:49
狀態和行為:電燈開關示例
代碼清單2-1展示了標準雙位電燈開關的軟件模型,使用過程式Python編寫。這是一個小示例,但它演示了狀態和行為。
代碼清單2-1:使用過程式代碼編寫的電燈開關模型(文件: LightSwitch_Procedural.py)
# Procedural light switch
? def turnOn():
global switchIsOn
# turn the light on
switchIsOn = True
? def turnOff():
global switchIsOn
# turn the light off
switchIsOn = False
# Main code
? switchIsOn = False # a global Boolean variable
# Test code
print(switchIsOn)
turnOn()
print(switchIsOn)
turnOff()
print(switchIsOn)
turnOn()
print(switchIsOn)
電燈開關只能處于開或關兩個位置之一。為了給狀態建模,我們只需要使用一個布爾值。我們將這個變量命名為switchIsOn(?),其值為True意味著開,False意味著關。當開關出廠時,處于關的位置,所以我們將switchIsOn的初始值設置為False。
接下來,我們了解行為。這個開關只能執行兩個操作——“打開”和“關閉”。因此,我們創建兩個函數turnOn()(?)和turnOff()(?),它們分別把布爾變量switchIsOn的值設置為True和False。
在程序最后添加了一些測試代碼,打開并關閉開關幾次。輸出正符合我們的期望。
False
True
False
True
這是一個很簡單的示例,但從這樣的小函數入手,能夠讓過渡到OOP方法的過程更加簡單。按照第1章的解釋,因為我們使用一個全局變量(在本例中為變量switchIsOn)代表狀態,所以這段代碼只能用于一個電燈開關,但編寫函數的主要目標之一是創建可重用的代碼。因此,我們將使用面向對象編程方式重寫電燈開關代碼,但在那之前,先介紹一些基礎理論。
推薦閱讀
- JavaScript:Functional Programming for JavaScript Developers
- PowerCLI Cookbook
- 游戲程序設計教程
- 你必須知道的204個Visual C++開發問題
- Learning Data Mining with R
- The DevOps 2.5 Toolkit
- 零基礎學C語言第2版
- Principles of Strategic Data Science
- UI動效設計從入門到精通
- Java 7 Concurrency Cookbook
- Managing Windows Servers with Chef
- Scratch少兒編程高手的7個好習慣
- Instant AppFog
- C#從入門到精通(微視頻精編版)
- Python編程:從入門到實踐(第2版)