Python面向對象基礎(一)

編程方式的區別:
面向過程:根據業務邏輯從上到下寫壘代碼
函數式:將某功能代碼封裝到函數中,日後便無需重複編寫,僅調用函數即可
面向對象:對函數進行分類和封裝,讓開發“更快更好更強…”

什麼是面向對象:
面向對象就不像面向過程那樣按照功能劃分模塊了,它所關注的是軟件系統有哪些參與者,把這些參與者稱爲對象,找出這些軟件系統的參與者也就是對象之後,分析這些對象有哪些特徵、哪些行爲,以及對象之間的關係,所以說面向對象的開發核心是對象

面向對象的兩個非常重要的概念:類和對象
類是對象的類型,具有相同屬性和行爲。類是抽象的,在使用的時候通常會找到這個類的具體存在,就好比:人類,狗類,鼠類等等,就是類。
萬物皆爲對象,對象擁有自己的特徵和行爲,就好比:你有你的性別,年齡等特徵,有喫飯,睡覺等行爲。
類和對象的關係:
類是對象的類型,對象是類的實例。類是抽象的概念,而對象是一個能摸到,看得到的實體,兩者相輔相成,誰也離不開誰

類的構成:
類由三部分構成:1、類的名稱:類型 2、屬性:對象的屬性 3、方法:對象的方法

創建和使用類:
類的定義:class 類名:
屬性列表
方法列表
示例:
class Person():
def init(self,name,age,food):
print(‘構造方法被調用’)
#構造函數,初始化屬性
self.name = name
self.age = age
self.food = food
def Eat(self):
print("%s今年%s,喜歡喫%s"%(self.name,self.age,self.food))

類的屬性分類:
類屬性:類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作爲實例變量使用。如果需要用在函數中使用類名.類屬性.
實例屬性:實例變量:定義在方法中的變量,只作用於當前實例的類。

針對類的屬性的一些方法:
可以使用點實例化對象名+.來訪問對象的屬性
也可以使用以下函數的方式來訪問屬性
getattr(obj, name[, default]) : 訪問對象的屬性
hasattr(obj,name) : 檢查是否存在一個屬性
setattr(obj,name,value) : 設置一個屬性。如果屬性不存在,會創建一個新屬性
delattr(obj, name) : 刪除屬性
注意:name需要加單引號,obj爲實例化對象名稱

Python內置類屬性:
dict : 類的屬性(包含一個字典,由類的屬性名:值組成) 實例化類名.dict
doc :類的文檔字符串 (類名.)實例化類名.doc
name: 類名,實現方式 類名.name
bases : 類的所有父類構成元素(包含了以個由所有父類組成的元組)

init()構造方法和self:
init()是一個特殊的方法屬於類的專有方法,被稱爲類的構造函數或初始化方法,方法的前面和後面都有兩個下劃線。
這是爲了避免Python默認方法和普通方法發生名稱的衝突。每當創建類的實例化對象的時候,init()方法都會默認被運行。作用就是初始化已實例化後的對象。
在方法定義中,第一個參數self是必不可少的。類的方法和普通的函數的區別就是self,self並不是Python的關鍵字,你完全可以用其他單詞取代他,只是按照慣例和標準的規定,推薦使用self。

創建和使用類小結:
類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作爲實例變量使用。
數據成員:類變量或者實例變量(方法中的變量)用於處理類及其實例對象的相關的數據。
方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱爲方法的重寫。
實例變量:定義在方法中的變量,只作用於當前實例的類。

實例化:創建一個類的實例,類的具體對象。
方法:類中定義的函數。
對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章