python3.6入门到高阶(全栈) day015 初识面向对象
生活随笔
收集整理的這篇文章主要介紹了
python3.6入门到高阶(全栈) day015 初识面向对象
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今日主要內(nèi)容
1. 面向?qū)ο蠛兔嫦蜻^(guò)程(重點(diǎn)在于理解)
面向過(guò)程: 以我為中心. 按照事物的發(fā)展"流程".
優(yōu)點(diǎn):負(fù)責(zé)的問(wèn)題流程化,編寫相對(duì)簡(jiǎn)單
缺點(diǎn):可拓展性差
面向?qū)ο? 以對(duì)象為中心.
優(yōu)點(diǎn): 可拓展性強(qiáng)
缺點(diǎn): 編程的復(fù)雜度高于面向過(guò)程
萬(wàn)事萬(wàn)物皆為對(duì)象(object)
2. 如何編寫面向?qū)ο蟮某绦?重點(diǎn))
先創(chuàng)建類: 歸類. 對(duì)某些事物進(jìn)行總結(jié). 相當(dāng)于圖紙
使用類可以創(chuàng)建對(duì)象:
class 類名(object)
def __init__(self, name, age): # 構(gòu)造方法. 創(chuàng)建對(duì)象的時(shí)候自動(dòng)調(diào)用這個(gè)方法
self.name = name
self.age = age
def 方法名(self, 參數(shù));
方法體(return)
創(chuàng)建對(duì)象:
變量(引用, 句柄) = 類名(參數(shù))
# 訪問(wèn)對(duì)象的屬性信息
對(duì)象.屬性
# 方法的訪問(wèn):
對(duì)象.方法()
例 class Car:
def __init__(self, color, pai, pailiang): # self表示當(dāng)前類的對(duì)象. 當(dāng)前你創(chuàng)建
的是誰(shuí), 誰(shuí)來(lái)訪問(wèn)的這個(gè)?法.那這個(gè)self就是誰(shuí).
self.color = color
self.pai = pai
self.pailiang = pailiang
def run(self, speed):
print("?可以跑%s邁" % speed)
c = Car("red", "京A66666", "2.0T")
c.run(100) # 這時(shí). python會(huì)?動(dòng)把對(duì)象c傳遞給run?法的第?個(gè)參數(shù)位置.
對(duì)比面向?qū)ο蠛兔嫦蜻^(guò)程:
看需求.
大型項(xiàng)目更適合用面向?qū)ο?br /> 小型腳本程序更適合面向過(guò)程
3. 面向?qū)ο蟮娜筇卣? 封裝, 繼承, 多態(tài)
1. 封裝
對(duì)屬性封裝
self.xxx = xxxx
對(duì)方法封裝
2. 繼承
子類可以自動(dòng)擁有父類中除了私有內(nèi)容外的其他所有內(nèi)容
例 class QinDie:
def chi(self):
print("親爹給你好吃的")
def play(self):
print("親爹會(huì)陪你玩")
class GanDie:
def qian(self):
print("?爹給錢啊")
def play(self):
print("?爹會(huì)陪你玩")
class GuNiang(QinDie, GanDie):
pass
bumei = GuNiang()
bumei.chi() # 親爹
bumei.qian() # 親爹沒(méi)有, 找?爹
bumei.play() # 親爹有了, 就不找?爹了
3. 多態(tài)
同一個(gè)對(duì)象多種形態(tài).
程序具有超高的可擴(kuò)展性. ?向?qū)ο笏枷氲暮?與靈魂. python?帶多態(tài)
例 class Animal:
def chi(self):
print("動(dòng)物就知道吃")
class Pig(Animal):
def chi(self):
print("豬在吃")
class Haski(Animal):
def chi(self):
print("哈?奇在吃")
class Alasika(Animal):
def chi(self):
print("阿拉斯加在吃")
class SiYangYuan:
def yanng_animal(self, ani):
ani.chi()
zhu = Pig()
erha = Haski()
ala = Alasika()
alex = SiYangYuan()
alex.yanng_animal(zhu)
alex.yanng_animal(erha)
alex.yanng_animal(ala)
1. 面向?qū)ο蠛兔嫦蜻^(guò)程(重點(diǎn)在于理解)
面向過(guò)程: 以我為中心. 按照事物的發(fā)展"流程".
優(yōu)點(diǎn):負(fù)責(zé)的問(wèn)題流程化,編寫相對(duì)簡(jiǎn)單
缺點(diǎn):可拓展性差
面向?qū)ο? 以對(duì)象為中心.
優(yōu)點(diǎn): 可拓展性強(qiáng)
缺點(diǎn): 編程的復(fù)雜度高于面向過(guò)程
萬(wàn)事萬(wàn)物皆為對(duì)象(object)
2. 如何編寫面向?qū)ο蟮某绦?重點(diǎn))
先創(chuàng)建類: 歸類. 對(duì)某些事物進(jìn)行總結(jié). 相當(dāng)于圖紙
使用類可以創(chuàng)建對(duì)象:
class 類名(object)
def __init__(self, name, age): # 構(gòu)造方法. 創(chuàng)建對(duì)象的時(shí)候自動(dòng)調(diào)用這個(gè)方法
self.name = name
self.age = age
def 方法名(self, 參數(shù));
方法體(return)
創(chuàng)建對(duì)象:
變量(引用, 句柄) = 類名(參數(shù))
# 訪問(wèn)對(duì)象的屬性信息
對(duì)象.屬性
# 方法的訪問(wèn):
對(duì)象.方法()
例 class Car:
def __init__(self, color, pai, pailiang): # self表示當(dāng)前類的對(duì)象. 當(dāng)前你創(chuàng)建
的是誰(shuí), 誰(shuí)來(lái)訪問(wèn)的這個(gè)?法.那這個(gè)self就是誰(shuí).
self.color = color
self.pai = pai
self.pailiang = pailiang
def run(self, speed):
print("?可以跑%s邁" % speed)
c = Car("red", "京A66666", "2.0T")
c.run(100) # 這時(shí). python會(huì)?動(dòng)把對(duì)象c傳遞給run?法的第?個(gè)參數(shù)位置.
對(duì)比面向?qū)ο蠛兔嫦蜻^(guò)程:
看需求.
大型項(xiàng)目更適合用面向?qū)ο?br /> 小型腳本程序更適合面向過(guò)程
3. 面向?qū)ο蟮娜筇卣? 封裝, 繼承, 多態(tài)
1. 封裝
對(duì)屬性封裝
self.xxx = xxxx
對(duì)方法封裝
2. 繼承
子類可以自動(dòng)擁有父類中除了私有內(nèi)容外的其他所有內(nèi)容
例 class QinDie:
def chi(self):
print("親爹給你好吃的")
def play(self):
print("親爹會(huì)陪你玩")
class GanDie:
def qian(self):
print("?爹給錢啊")
def play(self):
print("?爹會(huì)陪你玩")
class GuNiang(QinDie, GanDie):
pass
bumei = GuNiang()
bumei.chi() # 親爹
bumei.qian() # 親爹沒(méi)有, 找?爹
bumei.play() # 親爹有了, 就不找?爹了
3. 多態(tài)
同一個(gè)對(duì)象多種形態(tài).
程序具有超高的可擴(kuò)展性. ?向?qū)ο笏枷氲暮?與靈魂. python?帶多態(tài)
例 class Animal:
def chi(self):
print("動(dòng)物就知道吃")
class Pig(Animal):
def chi(self):
print("豬在吃")
class Haski(Animal):
def chi(self):
print("哈?奇在吃")
class Alasika(Animal):
def chi(self):
print("阿拉斯加在吃")
class SiYangYuan:
def yanng_animal(self, ani):
ani.chi()
zhu = Pig()
erha = Haski()
ala = Alasika()
alex = SiYangYuan()
alex.yanng_animal(zhu)
alex.yanng_animal(erha)
alex.yanng_animal(ala)
轉(zhuǎn)載于:https://www.cnblogs.com/wanxiangai/p/9917267.html
總結(jié)
以上是生活随笔為你收集整理的python3.6入门到高阶(全栈) day015 初识面向对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电脑组装电源选多大? 组装电脑选电源功率
- 下一篇: 微信视频号如何屏蔽好友点赞? 微信视频号