面向對象最重要的概念就是類(Class)和實例(Instance),類是抽象的模板,實例是根據類建立出來的一個個具體的「對象」
每一個對象都擁有相同的方法,但各自的數據可能不一樣編程
建立類和實例函數
class Student(object): def __init__(self, name, score): self.name = name self.score = score def get_grade(self): if self.score >= 90: return 'A' elif self.score >= 60: return 'B' else: return 'C' bart.city = 'Dalian' #可自由地給一個實例變量綁定屬性,這個屬性是任意的,不必定非要在類內定義 bart = Student('Jim',60) #建立實例,不須要傳入self bart.get_grade() #輸出:B,不須要傳入self
關於類
在Python中,定義類是經過class關鍵字
class後面緊接着是類名,即Student,類名一般是大寫開頭的單詞,緊接着是(object),表示該類是從哪一個類繼承下來的
一般,若是沒有合適的繼承類,就使用object類,這是全部類最終都會繼承的類
建立格式:
class 類名(object):
...
關於類屬性
定義類屬性經過如下幾種方式:
1) 類屬性可經過__init__函數設定
2) 經過實例名.屬性 = '.....'的方式設定,這種方式設定屬性時,屬性是任意的,不必定非要在類內定義
關於類方法
__init__函數
特殊方法"__init__"先後分別有兩個下劃線
第一個參數永遠是self,表示建立的實例自己,所以,在__init__方法內部,就能夠把各類屬性綁定到self,由於self就指向建立的實例自己
該函數是用於爲實例初始化值的,在建立實例時,不能傳入空的參數,必須傳入與__init__方法匹配的參數,但self不須要傳,Python解釋器本身會把實例變量傳進去
自定義類方法
在類中定義的函數只有一點不一樣,就是第一個參數永遠是實例變量self,且調用時,不用傳遞該參數。除此以外,類的方法和普通函數沒有什麼區別
因此,仍然可用默認參數、可變參數、關鍵字參數和命名關鍵字參數
調用類方法
實例調用類方法,只需在實例變量上直接調用,除了self不用傳遞,其餘參數正常傳入
關於實例
建立格式:實例名 = 類名()
關於數據封裝
面向對象編程的一個重要特色就是數據封裝
每一個實例就擁有各自對應屬性的數據,能夠經過函數來訪問這些數據spa