Python 入門指南 - 類別

類別 (class) 用來設計自己需要的物件 (object) ,這是說,類別是物件的模板。 Python 中設計類別使用關鍵字 (keyword) class ,裡頭可定義類別的類別屬性 (class attribute) 、實體屬性 (instance attribute) 與方法 (method)




我們舉一例如下
class Demo:
    def setAtt(self, a = 22, b = 33):
        self.a = a
        self.b = b
    
    def do_something(self):
        return self.a + self.b

print()
d = Demo()
d.setAtt()
print(d.do_something())
d.setAtt(11, 22)
print(d.do_something())
print()

# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:classdemo.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2012 年 12 月 


此例中的 Demo 類別的 setAtt 方法定義兩個實體屬性 self.aself.b ,亦有三個參數 selfab ,同時設定 a 的初值為 22 , b 的初值為 33 ,然後將 a 設定給 self.ab 設定給 self.b
def setAtt(self, a = 22, b = 33):
    self.a = a
    self.b = b


self 為 Python 類別定義中預設的參數,代表建立的物件實體,因此 self.aself.b 都是實體屬性。


另外定義一個 do_something() 方法,回傳 self.aself.b 的相加值
def do_something(self):
    return self.a + self.b


建立新物件利用類別名稱的小括弧,然後呼叫 do_something() 兩次,第二次之前呼叫 setAtt() 重新設定 self.aself.b 之值
print()
d = Demo()
d.setAtt()
print(d.do_something())
d.setAtt(11, 22)
print(d.do_something())
print()


執行看看結果吧



定義類別很簡單吧!我們將發展一個 Encrypt 類別,利用 Encrypt 物件進行編碼、解碼的工作,在此之前,我們先來想想密碼表該怎麼製作出來咧!這就需要用到串列 (list) 了。


中英文術語對照
類別class
物件object
關鍵字keyword
類別變數class variable
實體變數instance variable
方法method
串列list


您可以繼續參考
基礎篇


相關目錄
回 Python 入門指南
回 Python 教材
回首頁


參考資料
http://docs.python.org/3.1/tutorial/classes.html
http://docs.python.org/3.1/reference/lexical_analysis.html
http://docs.python.org/3.1/reference/simple_stmts.html
http://docs.python.org/3.1/reference/compound_stmts.html

沒有留言: