python3.6入门到高阶(全栈) day015 初识面向对象
生活随笔
收集整理的這篇文章主要介紹了
python3.6入门到高阶(全栈) day015 初识面向对象
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今日主要內容
1. 面向對象和面向過程(重點在于理解)
面向過程: 以我為中心. 按照事物的發(fā)展"流程".
優(yōu)點:負責的問題流程化,編寫相對簡單
缺點:可拓展性差
面向對象: 以對象為中心.
優(yōu)點: 可拓展性強
缺點: 編程的復雜度高于面向過程
萬事萬物皆為對象(object)
2. 如何編寫面向對象的程序(重點)
先創(chuàng)建類: 歸類. 對某些事物進行總結. 相當于圖紙
使用類可以創(chuàng)建對象:
class 類名(object)
def __init__(self, name, age): # 構造方法. 創(chuàng)建對象的時候自動調用這個方法
self.name = name
self.age = age
def 方法名(self, 參數(shù));
方法體(return)
創(chuàng)建對象:
變量(引用, 句柄) = 類名(參數(shù))
# 訪問對象的屬性信息
對象.屬性
# 方法的訪問:
對象.方法()
例 class Car:
def __init__(self, color, pai, pailiang): # self表示當前類的對象. 當前你創(chuàng)建
的是誰, 誰來訪問的這個?法.那這個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) # 這時. python會?動把對象c傳遞給run?法的第?個參數(shù)位置.
對比面向對象和面向過程:
看需求.
大型項目更適合用面向對象
小型腳本程序更適合面向過程
3. 面向對象的三大特征: 封裝, 繼承, 多態(tài)
1. 封裝
對屬性封裝
self.xxx = xxxx
對方法封裝
2. 繼承
子類可以自動擁有父類中除了私有內容外的其他所有內容
例 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)
同一個對象多種形態(tài).
程序具有超高的可擴展性. ?向對象思想的核?與靈魂. 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. 面向對象和面向過程(重點在于理解)
面向過程: 以我為中心. 按照事物的發(fā)展"流程".
優(yōu)點:負責的問題流程化,編寫相對簡單
缺點:可拓展性差
面向對象: 以對象為中心.
優(yōu)點: 可拓展性強
缺點: 編程的復雜度高于面向過程
萬事萬物皆為對象(object)
2. 如何編寫面向對象的程序(重點)
先創(chuàng)建類: 歸類. 對某些事物進行總結. 相當于圖紙
使用類可以創(chuàng)建對象:
class 類名(object)
def __init__(self, name, age): # 構造方法. 創(chuàng)建對象的時候自動調用這個方法
self.name = name
self.age = age
def 方法名(self, 參數(shù));
方法體(return)
創(chuàng)建對象:
變量(引用, 句柄) = 類名(參數(shù))
# 訪問對象的屬性信息
對象.屬性
# 方法的訪問:
對象.方法()
例 class Car:
def __init__(self, color, pai, pailiang): # self表示當前類的對象. 當前你創(chuàng)建
的是誰, 誰來訪問的這個?法.那這個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) # 這時. python會?動把對象c傳遞給run?法的第?個參數(shù)位置.
對比面向對象和面向過程:
看需求.
大型項目更適合用面向對象
小型腳本程序更適合面向過程
3. 面向對象的三大特征: 封裝, 繼承, 多態(tài)
1. 封裝
對屬性封裝
self.xxx = xxxx
對方法封裝
2. 繼承
子類可以自動擁有父類中除了私有內容外的其他所有內容
例 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)
同一個對象多種形態(tài).
程序具有超高的可擴展性. ?向對象思想的核?與靈魂. 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)
轉載于:https://www.cnblogs.com/wanxiangai/p/9917267.html
總結
以上是生活随笔為你收集整理的python3.6入门到高阶(全栈) day015 初识面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑组装电源选多大? 组装电脑选电源功率
- 下一篇: python中常用的模块二