面向對象簡介 面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函數的順序執行。為了簡化程式設計,面向過程把函數繼續切分為子函數,即把大塊函數通過切割成小塊函數來降低系統的複雜度。 面向對象編程——Object Oriented Programming,簡稱OOP,是一種程式設計思想。OOP ...
面向對象簡介
面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函數的順序執行。為了簡化程式設計,面向過程把函數繼續切分為子函數,即把大塊函數通過切割成小塊函數來降低系統的複雜度。
面向對象編程——Object Oriented Programming,簡稱OOP,是一種程式設計思想。OOP把對象作為程式的基本單元,一個對象包含了數據和操作數據的函數。
而面向對象的程式設計把電腦程式視為一組對象的集合,而每個對象都可以接收其他對象發過來的消息,並處理這些消息,電腦程式的執行就是一系列消息在各個對象之間傳遞。
在Python中,所有數據類型都可以視為對象,當然也可以自定義對象。自定義的對象數據類型就是面向對象中的類(Class)的概念。
類和實例
面向對象最重要的概念就是類(Class)和實例(Instance),必須牢記類是抽象的模板,而實例是根據類創建出來的一個個具體的“對象”,每個對象都擁有相同的方法,但各自的數據可能不同。
創建類:
class Student(object):
pass
class後面緊接著是類名,類名通常是大寫開頭的單詞,緊接著是(object),表示該類是從哪個類繼承下來的,通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。
實例化一個類對象:
bart = Student()
完整的示例:
class Student(object):
pass
bart = Student()
print(Student) #lass '__main__.Student'>
print(bart) #<__main__.Student object at 0x0000018B2C07CB00>
__init__
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
__init__
方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__
方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。
有了__init__
方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__
方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變數傳進去。
bart = Student('Bart Simpson', 59)
print(bart.name) #Bart Simpson
print(bart.score) #59
類的方法
'''
學習中遇到問題沒人解答?小編創建了一個Python學習交流群:711312441
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 60:
return 'B'
else:
return 'C'
和普通的函數相比,在類中定義的函數只有一點不同,就是第一個參數永遠是實例變數self,並且,調用時,不用傳遞該參數。除此之外,類的方法和普通函數沒有什麼區別,所以,你仍然可以用預設參數、可變參數、關鍵字參數和命名關鍵字參數。