Python全栈开发——面向对象的三大特性(继承 多态 封装)
1.繼承
1.兩層意思
改變和擴(kuò)展(詳細(xì)看隨筆繼承和組合)
?
2.多態(tài)(體現(xiàn)在運(yùn)行時(shí)的狀態(tài))
1.不同的類(lèi)可以調(diào)用相同的方法,得到不同的結(jié)果
2.實(shí)際上是繼承的一種體現(xiàn)機(jī)制
?
class H2o:def __init__(self,name,temperature):self.name=nameself.temperature=temperaturedef turn_ice(self):if self.temperature<0:print('溫度太低,變成【%s】' %self.name)if self.temperature>100:print('溫度太高,變成【%s】' %(self.name))if self.temperature>=0 and self.temperature<=100:print('溫度適中,變成【%s】' %self.name) class water(H2o):pass class ice(H2o):pass class Steam(H2o):pass w1=water('water',46) i1=ice('ice',-12) s=Steam('stream',199)w1.turn_ice() # 溫度適中,變成【water】 i1.turn_ice() # 溫度太低,變成【ice】 s.turn_ice() #溫度太高,變成【stream】?
3.封裝
1.拋開(kāi)面向?qū)ο?#xff0c;你單獨(dú)想什么是裝,裝就是拿一個(gè)麻袋,把小貓, 小狗等一起裝進(jìn)麻袋 ,在面向?qū)ο笾?#xff0c;
這個(gè)麻袋就是你的類(lèi)或?qū)ο?#xff0c;類(lèi)或?qū)ο筮@兩個(gè)麻袋 裝了數(shù)據(jù)屬性和函數(shù)屬性,那么對(duì)于類(lèi)或?qū)ο髞?lái)說(shuō),封的概念代表隱藏
2.兩種方法隱藏
1.在前面加 (_)???????? (實(shí)際上是一種約定,還可以訪問(wèn),但程序員知道訪問(wèn)這個(gè)不對(duì))
2.在前面加(__)??????????? (實(shí)際上是字符串拼接)
?
class Peoson:_star='earth'def __init__(self,name,age):self._name=nameself.__age=age p1=Peoson('lujiacheng',19) print(p1._star) #earth print(p1._name) #lujiacheng print(p1._Peoson__age) #19 實(shí)際上是拼接?
3.第三層次的封裝:區(qū)分內(nèi)外(利用第二層次的封裝),外部沒(méi)法訪問(wèn),只在內(nèi)部使用, 外部要訪問(wèn),可定義一個(gè)接口(即函數(shù)),
供外部訪問(wèn) (但設(shè)計(jì)時(shí)要充分考慮數(shù)據(jù)是否要封裝,不然接口很多,所以不能亂用封裝)
?
轉(zhuǎn)載于:https://www.cnblogs.com/lujiacheng-Python/p/9736163.html
總結(jié)
以上是生活随笔為你收集整理的Python全栈开发——面向对象的三大特性(继承 多态 封装)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【VS插件】VS2012设置透明背景
- 下一篇: MATLAB调用Python自定义函数(