一、面向過(guò)程編程POP(Procedure Oriented Programming)
面向過(guò)程的核心是過(guò)程鸵赫,過(guò)程就是指解決問題的步驟衣屏。
優(yōu)缺點(diǎn):
- 優(yōu)點(diǎn): 將負(fù)責(zé)的問題流程化,進(jìn)而實(shí)現(xiàn)簡(jiǎn)單化
- 缺點(diǎn):擴(kuò)展性差(更新辩棒,維護(hù)狼忱,迭代)
二、面向?qū)ο缶幊蘋OP(Object Oriented Programming)
面向?qū)ο蟮暮诵氖菍?duì)象一睁,是一個(gè)特征和功能的綜合體
優(yōu)缺點(diǎn):
- 優(yōu)點(diǎn):可擴(kuò)展性高
- 缺點(diǎn):編程復(fù)雜度相對(duì)面向過(guò)程高一些钻弄,指的是計(jì)算機(jī)在執(zhí)行面向?qū)ο蟮某绦驎r(shí)的性能表現(xiàn)。
總結(jié):在去完成一些簡(jiǎn)單的程序時(shí)卖局,可以使用面向過(guò)程去解決斧蜕。但是如果有復(fù)雜的程序或任務(wù),而且需要不斷的進(jìn)行迭代和維護(hù)砚偶,那么肯定是優(yōu)先選擇面向?qū)ο蟮木幊趟枷搿?/p>
三批销、認(rèn)識(shí)類與對(duì)象
- 類:類是對(duì)象的一個(gè)抽象的概念
- 對(duì)象(實(shí)例):對(duì)象就是由類的創(chuàng)建的實(shí)例
- 二者的關(guān)系:類和對(duì)象的關(guān)系就是 模具與鑄件的關(guān)系
- 類是由對(duì)象總結(jié)而來(lái)的,總結(jié)的這個(gè)過(guò)程叫做抽象
- 對(duì)象是由類具體實(shí)施出來(lái)的染坯,這個(gè)過(guò)程叫做實(shí)例化
定義類與實(shí)例化對(duì)象
定義一個(gè)汽車類均芽,同時(shí)說(shuō)明該汽車具有的屬性和相關(guān)功能
# 定義一個(gè)汽車的類
class Car():
# 屬性 ==> 特征 ==> 變量
color = '白色' # 表示顏色屬性
brand = '奧迪' # 表示品牌屬性
pailiang = 2.4 # 表示排量屬性
# 方法 ==> 功能 ==> 函數(shù)
def lahuo(self): # 拉貨功能
# self 代表調(diào)用這個(gè)方法的對(duì)象,誰(shuí)調(diào)用了這個(gè)方法,self就代表誰(shuí)
print('小汽車能拉貨')
def doufeng(self): # 兜風(fēng)功能
print('小汽車能兜風(fēng)')
def bamei(self): # 可以嗨起來(lái)
print('帶妹子去嗨单鹿。掀宋。。')
# 實(shí)例化對(duì)象
aodiobj = Car()
aodiobj.lahuo() # 調(diào)用對(duì)象的方法
print(aodiobj.brand) # 獲取對(duì)象的屬性
四仲锄、魔術(shù)方法
- 魔術(shù)方法也和普通方法一樣都是類中定義的成員方法
- 魔術(shù)方法不需要去手動(dòng)調(diào)用的劲妙,魔術(shù)方法會(huì)在某種情況下,自動(dòng)觸發(fā)(自動(dòng)執(zhí)行)
- 魔術(shù)方法還有一個(gè)比較特殊的地方:就是多數(shù)的魔術(shù)方法 前后都有兩個(gè)連續(xù)的下劃線
- 魔術(shù)方法不是我們自己定義的儒喊,而是系統(tǒng)定義好的镣奋,我們來(lái)使用
實(shí)例:
(1)定義一個(gè)類,完成一個(gè)日志的記錄
(2)調(diào)用這個(gè)對(duì)象的時(shí)候怀愧,傳遞一個(gè)日志信息
(3)這個(gè)對(duì)象會(huì)創(chuàng)建一個(gè)文件侨颈,開始寫入,并在最后關(guān)閉這個(gè)文件
class writeLog():
# 成員屬性
# 文件的路徑
fileurl = './'
# 日志文件的名稱
filename = '2019-09-19'
# 初始化 打開文件
def __init__(self):
#完成文件的打開
print('初始化方法觸發(fā)類芯义,完成文件的打開')
self.fileobj = open(self.fileurl+self.filename,'a+',encoding='utf-8')
# 寫日志的方法
def log(self,s):
print(f'把日志:{s} 寫入文件中')
# 析構(gòu)方法
def __del__(self):
print('析構(gòu)方法觸發(fā)了哈垢,關(guān)閉打開的文件')
# 在對(duì)象被銷毀時(shí),關(guān)閉在初始化方法中打開的文件對(duì)象
self.fileobj.close()