1. 程式人生 > >小菜雞學習Python之路--OOP(1)

小菜雞學習Python之路--OOP(1)

面對物件程式設計--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 包含資料和操作資料的方法