面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把大塊函式通過切割成小塊函式來降低系統的複雜度。
物件導向程式設計——object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。
而物件導向的程式設計把電腦程式視為一組物件的集合,而每個物件都可以接收其他物件發過來的訊息,並處理這些訊息,電腦程式的執行就是一系列訊息在各個物件之間傳遞。
在python中,所有資料型別都可以視為物件,當然也可以自定義物件。自定義的物件資料型別就是物件導向中的類(class)的概念。
物件導向最重要的概念就是類(class)和例項(instance),必須牢記類是抽象的模板,而例項是根據類建立出來的乙個個具體的「物件」,每個物件都擁有相同的方法,但各自的資料可能不同。
建立類:
classstudent(object):
pass
class後面緊接著是類名,類名通常是大寫開頭的單詞,緊接著是(object),表示該類是從哪個類繼承下來的,通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。
例項化乙個類物件:
bart = student()
完整的示例:
classstudent(object):
pass
bart =student()
print(student) #
lass '__main__.student'>
print(bart) #
<__main__.student object at 0x0000018b2c07cb00>
classstudent(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
defget_grade(self):
if self.score >= 90:
return'a
'elif self.score >= 60:
return'b
'else
:
return'c
'
和普通的函式相比,在類中定義的函式只有一點不同,就是第乙個引數永遠是例項變數self
,並且,呼叫時,不用傳遞該引數。除此之外,類的方法和普通函式沒有什麼區別,所以,你仍然可以用預設引數、可變引數、關鍵字引數和命名關鍵字引數。
Python3 物件導向程式設計(類和物件)
今天想和大家聊聊物件導向中的類和物件,其實一開始我學的雲裡霧裡,借鑑了乙個我以前看到過的解釋,希望可以用大家容易理解的方式來說道說道。生活中每乙個具體的東西都可以被認為是物件,例如華為p40 小公尺10 蘋果11 oppo等手機,你可以認為這些物體是 物件 雖然他們各不相同 各有特色,但是都可以歸結...
Python3 物件導向程式設計 類
一 自定義類 1 屬性與方法 格式 class classname def init self,a,b self.a a self.b b def 一般都有乙個 init 函式來定義屬於這個類的引數,前後都被 包圍的函式為特殊方法 以 開頭的變數只能讀,不能寫,相當於private資料。如果重新實現...
python3 類和例項
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...