Python面向物件程式設計之類和物件、例項變數、類變數用法分析
阿新 • • 發佈:2020-03-24
本文例項講述了Python面向物件程式設計之類和物件、例項變數、類變數用法。分享給大家供大家參考,具體如下:
類和物件:
- 類的定義:用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。
- 類的優勢:將一個物件的功能集中於一體,便於操作,降低了程式碼的重複。
- 例項化:建立一個類的例項,類的具體物件。
- 物件:通過類定義的資料結構例項。物件包括兩個資料成員(類變數和例項變數)和方法。
使用 class 語句來建立一個新類:
class Dog: #self 代表的是類的例項,代表當前物件的地址 def __init__(self,name):##稱為類的建構函式,進行初始化成員變數 self.name=name def bulk(self):###自定義函式 print("%s:汪汪!"%self.name) d1=Dog("奧巴馬")##建立物件,傳入__init__所需的變數,self預設自動傳入 d1.bulk()#呼叫方法 print(d1)
為什麼要有self:
以類變數和例項變數為解釋,對於共有屬性,一般會在共有部分定義,不需要__init__,而比如說因為人人都有自己的名字,那麼名字應該是一個人私有的。而類的函式由於為了節約資源,並不會拷貝給每一個物件,每一個物件都要從類的定義區中呼叫方法,對於涉及物件特有屬性的方法,呼叫方法的時候必須傳入自身物件self才能使函式獲得私有的資料,而呼叫這個私有的資料使用”self.變數名”.
附:
什麼是新式類:https://www.jb51.net/article/183280.htm
例項變數和類變數:
- 例項變數是對於每個例項都獨有的資料,而類變數是該類所有例項共享的資料
- 變數使用的順序是:例項變數--》類變數,如果例項變數中沒有才會去類變數中找
- 【但即使是類中的變數,也是需要使用self.變數名來使用】
class Dog: age=8 def __init__(self,name): self.name=name def bulk(self): print("汪汪") d1=Dog("包子") d2=Dog("饅頭") d1.age=10 print("Dog:",Dog.age,"\tD1:",d1.age,"\tD2:",d2.age) ------------------------- 結果: Dog: 8 D1: 10 D2: 8
- 節約論:python為了簡潔性,不會複製一份類的資料給每一個物件,每一個物件之後存有其特有的屬性,當其需要使用屬性或方法時,先看自己有沒有,如果沒有再去類中找
類變數的建立:
- 可以在宣告類的時候定義
- 也可以使用賦值來定義:
例項變數的建立:
- 可以在__init__中定義
- 也可以使用賦值來定義:
更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python面向物件程式設計入門與進階教程》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程式設計有所幫助。