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

2.3 類、對象和實例化

下面看看代碼實現。

類:

定義了對象記憶什么(它的數據或稱狀態)以及能夠執行什么操作(它的函數或稱行為)的代碼。

下面的代碼將電燈開關寫成一個類,以幫助你了解類是什么樣子的。

# OO_LightSwitch
 
class LightSwitch():
    def __init__(self):
        self.switchIsOn = False
 
    def turnOn(self):
        # turn the switch on
        self.switchIsOn = True
 
    def turnOff(self):
        # turn the switch off
        self.switchIsOn = False

稍后將解釋細節,現在注意,這里的代碼只定義了一個self.switchIsOn變量,并在一個函數中初始化該變量。另外,該類還包含兩個代表行為的函數—— turnOn()和turnOff()。

如果編寫類的代碼,并試圖運行代碼,那么什么也不會發生,正如你運行一個只包含函數但不包含函數調用的Python程序那樣。你需要顯式告訴Python創建類的對象。

要從LightSwitch類創建一個LightSwitch對象,通常使用如下所示的代碼行。

oLightSwitch = LightSwitch()

這行代碼的意思是,找到LightSwitch類,從該類創建一個LightSwitch對象,然后將得到的對象賦給變量oLightSwitch。

注意:

作為本書中的命名約定,我通常會使用小寫o作為前綴,指出某個變量代表一個對象。其實并不是必須要這么做,但這種方法能夠提醒我自己,變量代表的是一個對象。

在OOP中,還會遇到另外一個詞——實例。“實例”和“對象”這兩個詞基本上可以互換使用,但是精確來說我們會稱LightSwitch對象是LightSwitch類的一個實例。

實例化:

從類創建對象的過程。

在上面的賦值語句中,實例化過程從LightSwitch類創建了一個LightSwitch對象。我們也可以把“實例化”這個詞用作動詞,例如,我們從LightSwitch類實例化了一個LightSwitch對象。

主站蜘蛛池模板: 永嘉县| 长汀县| 巴彦淖尔市| 建德市| 石首市| 广南县| 武乡县| 明水县| 项城市| 许昌县| 潜江市| 含山县| 饶河县| 郓城县| 华安县| 定南县| 通化县| 特克斯县| 中西区| 镇坪县| 凯里市| 茂名市| 通榆县| 靖远县| 南华县| 怀仁县| 陇西县| 乐安县| 伊宁县| 鹰潭市| 凯里市| 博客| 武城县| 昔阳县| 长沙市| 米林县| 洮南市| 新田县| 安龙县| 甘谷县| 通海县|