奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌

您現在所在的位置:首頁 >學習資源 > Python全棧+人工智能入門教材 > Python基礎入門教程27:企業級開發基礎 面向對象擴展

Python基礎入門教程27:企業級開發基礎 面向對象擴展

來源:奇酷教育 發表于:

前面的章節中,我們已經學習過面向對象的基本操作、面向對象的三大特征的詳細操作,對于面向對象有了一個初步的了解和認知。本節內容會針對

前面的章節中,我們已經學習過面向對象的基本操作、面向對象的三大特征的詳細操作,對于面向對象有了一個初步的了解和認知。
本節內容會針對面向對象的程序設計進行一部分的擴展和補充,方便我們在項目開發過程中的操作能更加的全面和完善。
 
0. 本節內容
 
0.1 類型屬性和對象成員屬性
 
0.2 對象屬性的外部聲明和限制
 
0.3 多繼承機制下的注意的問題
 
0.4 類的定制屬性~魔法方法
 
0.5 特殊的類型:枚舉
 
1. 類型屬性和對象的成員屬性
 
在之前的章節中,我們就類和對象已經學習過了如下內容
 
類型的定義
類型中屬性的定義
類型中方法的定義
屬性和方法的私有化操作
當類型在處理的過程中,我們知道在init()函數中可以初始化類的成員屬性/變量,在創建對象的過程中,每個對象的成員屬性都是互相獨立且互不影響的;對象A是不能直接使用對象B的成員屬性的值的,而是要通過對象B調用獲取對象B的屬性;
python的類型中,還提供了一種方式,可以直接定義類的屬性,這樣定義的屬性是當前類型創建的所有對象所共享的,也可以直接通過類名稱調用,這樣的屬性稱為:類屬性
 
類屬性:是定義在類型中的公開的屬性,可以讓通過當前類型直接操作,可以是當前類型創建的所有對象共享的數據


2. 對象屬性的外部聲明和限制
 
上面的代碼中,我們使用p1.onlineCount=15發現沒有修改類屬性,而是給p1增加了一個成員屬性,這是怎么回事呢?
 
觀察下面的代碼:

在上述代碼中,我們定義了一個空類型Person,在創建了Person的對象之后,可以在對象的引用變量上,給對象添加額外的成員屬性【切記,這里添加的額外的成員屬性僅限于當前的這個對象,其他對象上不會出現】
 
這樣的操作方式,可以在一定程度上讓代碼的操作更加靈活,但是同時也降低了代碼的可讀性,試想一下~我們辛辛苦苦抽象定義好了類型Person,Person中已經出現了我們所有人知道的屬性,結果在操作的過程中,朝陽群眾A創建的Person對象多出來了2個其他人不知道的屬性,朝陽群眾B創建的Person對象又多出來了其他人不知道的3個屬性,這是一件非常恐怖的事情,會讓整個類型和對象的操作變得非常的混亂。

觀察上述代碼,兩個人創建的對象,一團混亂,光是一個性別兩個開發人員定義的擴展出來的成員變量都不一致,后續其他人在操作的時候都不知道應該調用什么屬性來處理了。
 
python為了處理這樣的問題,提供了一個特殊的類屬性__slots__ ,該屬性的值是一個元組,元組中定義了類中可以出現的所有成員屬性的名稱


3. 多繼承機制下的注意的問題
 
多繼承機制,在操作的過程中,同樣也是提高了代碼的處理靈活性,很大程度的擴展了代碼的功能
 
在使用多繼承機制進行程序設計開發的過程中一定要注意一個問題:當前類繼承了一個或者多個父類,當前類就同時繼承了父類中的公開的屬性和函數,如果不同的父類中出現相同的屬性/函數,就需要明確執行的過程

4. 類的定制屬性~魔法方法
 
上面的代碼中,我們已經看到了,類似__slots__這樣的變量在前后加了雙下劃線的,在python中會有特殊的含義,這里會繼續介紹一些常見的在面向對象開發過程中出現的一些這樣的魔法方法
 
4.1. 對象格式化打印輸出【__str__()】
 
常規情況下,對象直接輸出,會輸出對象的描述信息,晦澀難懂

我們突然發現,直接打印對象,輸出的結果竟然是我們在__str__()方法中定義的字符串。其實我們在使用使用對象的時候,就會默認調用對象的__str__()方法獲取對象的字符串描述信息,這個__str__()方法是從object對象繼承而來的,我們這里只是對它進行了方法重寫。
 
另外,在命令行操作過程中,如果不用print()方法打印而是直接輸入對象,會發現執行的結果又是讓人晦澀難懂的東西了,在命令行直接使用對象調用的不是對象的__str__()方法,而是__repr__()方法,只需要簡單的修改即可

肯定是不能這么干的~,所以出現錯誤:Person對象不是一個可執行的東東
 
但是可以進行如下的改造

5. 特殊的類型:枚舉
 
某些情況下,在我們項目開發過程中,會針對一些不會改變的數據進行標記,~常見的做法就是通過定義常量的情況進行處理,如:在一個員工管理系統中,針對一年十二個月發放工資,這里的十二個月需要進行標記~每個月的天數、績效這些都不一定一致,可以按照下面的方式進行處理:
5.1. 使用枚舉
 
上述代碼中,我們通過三種方式進行了枚舉的定義和處理,但是每一種方式都多多少少存在一些遺憾,python中提供了一種特殊的類型:枚舉,來處理這樣定義常量的問題:
 
枚舉的語法結構:是不是和上面我們使用元組的方式特別相像呢?!

5.2. 自定義枚舉
 
Python提供的枚舉已經完全足夠適用于我們項目中使用的各種場景了
如果枚舉的細節處理程度還是不滿足您的項目,可以通過python提供的方式進行自定義枚舉的定義


>>>更多VR/AR入門教程:VR入門

主站蜘蛛池模板: 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 聚合甘油__盐城市飞龙油脂有限公司| 恒温水槽与水浴锅-上海熙浩实业有限公司 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 屏蔽服(500kv-超高压-特高压-电磁)-徐吉电气 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 深圳市超时尚职业培训学校,培训:月嫂,育婴,养老,家政;化妆,美容,美发,美甲. | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 植筋胶-粘钢胶-碳纤维布-碳纤维板-环氧砂浆-加固材料生产厂家-上海巧力建筑科技有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 中国在职研究生招生信息网 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 包装机传感器-搅拌站传感器-山东称重传感器厂家-济南泰钦电气 | 超声波分散机-均质机-萃取仪-超声波涂料分散设备-杭州精浩 |