面向對象編程(OOP)是程序設計的思想,OOP把對象做爲程序的基本單元,一個對象包含了數據和操做數據的函數。在Python中,全部數據類型均可以視爲對象,固然也能夠自定義對象。自定義的對象數據類型就是面向對象中的類(Class)的概念面向對象的設計思想是抽象出類(Class),根據類(Class)建立實例(Instance)。面向對象的程序設計把計算機程序視爲一組對象的集合,而每一個對象均可以接收其餘對象發過來的消息,並處理這些消息,計算機程序的執行就是一系列消息在各個對象之間傳遞。編程
咱們用一個例子來講明面向對象的程序設計思想,假如咱們要處理學生的成績表。咱們首先要思考的不是程序的執行流程,而是把Student這種數據類型視爲一個對象,這個對象擁有name和score這兩個屬性(property)。咱們要打印一個學生的成績,首先要建立這個學生對應的對象,而後給對象發一個print_score消息,讓對象本身把數據打印出來。ide
class Student(object):
函數
def __init__(self,name,score):
spa
self.name = name
設計
self.score = score
orm
def print_score(self):
對象
print("{0}:{1}".format(self.name,self.score))
繼承
bart = Student("Bart Simpson",59)
it
bart.print_score()
面向對象編程
lisa = Student("Lisa Simpson",88)
lisa.print_score()
面向對象最重要的概念就是類(Class)和實例(Instance),必須牢記類是抽象的模板,好比Student類,而實例是根據類建立出來的一個個具體的「對象」,每一個對象都擁有相同的方法,但各自的數據可能不一樣。
面向對象的三大特色:
一、抽象封裝
面向對象編程的一個重要特色就是數據封裝。在上面Student類中,每一個實例就擁有各自的name和score這些數據,要訪問這些數據能夠直接經過Studnet類內部定義訪問數據的函數(print_score)。這樣,數據就給封裝起來了。這些封裝數據的函數就是類方法。
二、繼承
三、多態。