1. 程式人生 > >Python面向物件操作使用方法,10年經驗教你!

Python面向物件操作使用方法,10年經驗教你!

  在Python中,所有資料型別都可以視為物件,當然也可以自定義物件。自定義的物件資料型別就是面向物件中的類(Class)的概念。

我們以一個例子來說明面向過程和麵向物件在程式流程上的不同之處。

假設我們要處理學生的成績表,為了表示一個學生的成績,面向過程的程式可以用一個dict表示:

std1 = { 'name': 'Michael', 'score': 98 }
std2 = { 'name': 'Bob', 'score': 81 } 

而處理學生成績可以通過函式實現,比如列印學生的成績:

def print_score(std):
    print('%s: %s' % (std['name'], std['score']))

如果你還不知道如何正確操作,也沒有正確的學習方法,可以進小編扣扣裙【278136312】 裙公告裡面
有正確的學習視訊資料和學習路線,遇到問題裡面有大佬解答指導

採用面向物件的程式設計思想,我們首選思考的不是程式的執行流程,而是Student這種資料型別應該被視為一個物件,這個物件擁有namescore這兩個屬性(Property)。如果要列印一個學生的成績,首先必須創建出這個學生對應的物件,然後,給物件發一個print_score訊息,讓物件自己把自己的資料打印出來。

class Student(object):

    def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) 

給物件發訊息實際上就是呼叫物件對應的關聯函式,我們稱之為物件的方法(Method)。面向物件的程式寫出來就像這樣:

bart = Student('Bart Simpson', 59)
lisa = Student('Lisa Simpson', 87)
bart.print_score()
lisa.print_score()

面向物件的設計思想是從自然界中來的,因為在自然界中,類(Class)和例項(Instance)的概念是很自然的。Class是一種抽象概念,比如我們定義的Class——Student,是指學生這個概念,而例項(Instance)則是一個個具體的Student,比如,Bart Simpson和Lisa Simpson是兩個具體的Student。

所以,面向物件的設計思想是抽象出Class,根據Class建立Instance。

如果你還不知道如何正確操作,也沒有正確的學習方法,可以進小編扣扣裙【278136312】 裙公告裡面
有正確的學習視訊資料和學習路線,遇到問題裡面有大佬解答指導

面向物件的抽象程度又比函式要高,因為一個Class既包含資料,又包含操作資料的方法。