面向物件簡介
面向程序的程式設計把計算機程式視為一系列的命令集合,即一組函式的順序執行,為了簡化程式設計,面向程序把函式繼續切分為子函式,即把大塊函式通過切割成小塊函式來降低系統的復雜度,
面向物件編程——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,并且,呼叫時,不用傳遞該引數,除此之外,類的方法和普通函式沒有什么區別,所以,你仍然可以用默認引數、可變引數、關鍵字引數和命名關鍵字引數,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/502380.html
標籤:Python
