官术网_书友最值得收藏!

狀態和行為:電燈開關示例

代碼清單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)代表狀態,所以這段代碼只能用于一個電燈開關,但編寫函數的主要目標之一是創建可重用的代碼。因此,我們將使用面向對象編程方式重寫電燈開關代碼,但在那之前,先介紹一些基礎理論。

主站蜘蛛池模板: 射阳县| 雷波县| 克东县| 三原县| 乌鲁木齐县| 上饶市| 怀来县| 万盛区| 道真| 阜阳市| 越西县| 姜堰市| 建始县| 墨竹工卡县| 南平市| 牙克石市| 蒙阴县| 军事| 宿迁市| 佳木斯市| 宜章县| 普宁市| 册亨县| 金溪县| 河间市| 伊宁市| 水富县| 南岸区| 闽侯县| 庆元县| 图木舒克市| 应城市| 云霄县| 西盟| 夏津县| 河北省| 韶山市| 灵山县| 宜宾市| 宜君县| 邹城市|