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