小菜雞學習Python之路--OOP(1)
阿新 • • 發佈:2018-12-16
面對物件程式設計--class and instance
首先要弄明白麵對過程的程式設計與面對物件程式設計的不同。
如果有一個stu = {'name':'score'}的dict,面對過程的程式設計直接定義一個函式print_score('%s %s' %(stu['name'], stu['score']))即可。
我們考慮的是程式的執行流程
那麼面對物件的程式設計首先考慮的是將student這一資料型別視為一個物件,賦予這個物件name和score的屬性(property)。通過建立物件,然後向其傳送指令,讓其自已打印出自己的資料。
class Student(object): #定義一個抽象的class,類名通常是大寫字母開頭 def __init__(self, name, score): #__init__函式第一個屬性永遠是self,表示建立的例項本身 #再賦予屬性 name,score self.name = name #給物件繫結屬性 self.score = score def print_score(self): print('%s, %s' %(self.name, self.score))
傳送指令就是呼叫相關函式
Qin = Student('Qin', 666) #建立例項(物件) 通常是 類名'+'() 來建立
Qin.print_score #傳送指令
傳入引數時不需要傳入self,Python會自動傳入例項變數
上述 print_score()函式可以直接呼叫例項變數,不需要知道內部細節。這就是資料封裝
面對物件設計思路是抽象出一個class,然後根據class建立instance。即--類是例項建立的模板
class 包含資料和操作資料的方法