实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业

400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎(chǔ)知識】類中的屬性裝飾器和綜合案例

【Python基礎(chǔ)知識】類中的屬性裝飾器和綜合案例

  • 發(fā)布: python培訓(xùn)
  • 來源:python干貨資料
  • 2021-03-22 16:16:42
  • 閱讀()
  • 分享
  • 手機端入口

1、類中的屬性裝飾器

屬性裝飾器是實現(xiàn)將方法轉(zhuǎn)換成屬性的裝飾器,便于操作屬性,實現(xiàn)屬性的更改、查看。其語法格式如下:

class 類名():

def __init__(self):

self.__變量名 = 值

@property

def 方法名(self):

return self.__變量名

@方法名.setter

def 方法名(self, 新值):

self.__變量名 = 新值

下面是一個使用屬性裝飾器的示例:

  1. >>> class Car(object): 
  2. ...     def __init__(self, brand, color): 
  3. ...         self.brand = brand 
  4. ...         self.color = color 
  5. ...         self.__gaso = 20 
  6. ...     @property 
  7. ...     def gaso(self): 
  8. ...         return self.__gaso 
  9. ...     @gaso.setter 
  10. ...     def gaso(self, m): 
  11. ...         self.__gaso += m 
  12. ... 
  13. >>> falali = Car('法拉利''白色'
  14. >>> falali.gaso = 80    # 進(jìn)行加油 
  15. >>> print(falali.gaso)  # 打印油量 
  16. 100 

上述程序中,首先在__init__()方法中初始化了一個類私有屬性self.__gaso,并賦值20;然后定義屬性裝飾器@property,后接的gaso()方法獲得油量;接著用@gaso.setter,給self.__gaso重新賦新值,由于加油是需要保留原先油量的,因此采用了“+=”運算符進(jìn)行賦值。當(dāng)使用Car類創(chuàng)建實例falali后,初始化油量是20,然后給屬性裝飾器賦值80,則最后打印油量是20+80=100。

【Python基礎(chǔ)知識】類中的屬性裝飾器和綜合案例

2、類的綜合案例

創(chuàng)建一個學(xué)生類(Student),類中含有類屬性城市(city),默認(rèn)為北京。初始化方法中含有屬性名字、年齡和金錢,其中金錢為私有屬性,默認(rèn)值為0。學(xué)生實例的城市屬性與類屬性相同。代碼如下:

  1. class Student: 
  2.     city = '北京' 
  3.     def __init__(self, init_name, init_age, init_money = 0): 
  4.         self.name = init_name 
  5.         self.age = init_age 
  6.         self.__money = init_money 
  7.         self.city = Student.city 

學(xué)生類中包含以下方法。

①實例方法:創(chuàng)建實例money屬性的get和set方法。

②私有方法:創(chuàng)建__study()方法,打印某某在認(rèn)真聽課。

③實例方法:創(chuàng)建on_grade()方法,調(diào)用上面的私有方法__study()。

④魔法方法:創(chuàng)建一個__str__()打印方法,打印學(xué)生的名字。

⑤靜態(tài)方法:創(chuàng)建class_discipline()方法,打印課堂紀(jì)律。

⑥類方法:創(chuàng)建set_city()方法,設(shè)置城市屬性;創(chuàng)建show_city()方法,打印城市屬性。

在學(xué)生類中添加以上方法,代碼如下:

  1. def get_money(self):  
  2.       print('%s有%d RMB' % (self.name, self.__money))     
  3.   def set_money(self, m):   
  4.       self.__money += m 
  5.   def __study(self): 
  6.       print('%s在認(rèn)真聽課' % self.name) 
  7.   def on_grade(self):   
  8.       self.__study()     
  9.   def __str__(self):   
  10.       return self.name 
  11.   @staticmethod 
  12.   def class_discipline(): 
  13.       print('1.上課認(rèn)真聽講! \n'
  14.                '2.不準(zhǔn)遲到早退! \n'
  15.                '3.不準(zhǔn)交頭接耳! \n'
  16.   @classmethod 
  17.   def set_city(cls, city): 
  18.       cls.city = city 
  19.   @classmethod 
  20.   def show_city(cls): 
  21.       print('%s人' % (cls.city)) 

創(chuàng)建了學(xué)生類之后,在 Python 程序入口if __name__ == '__main__'中(每個Python模塊都包含內(nèi)建變量__name__,它的默認(rèn)值為'__main__'),進(jìn)行類實例化和實例屬性設(shè)置和實例方法調(diào)用。首先打印課堂紀(jì)律;然后創(chuàng)建一個學(xué)生實例liu,構(gòu)造函數(shù)的參數(shù)為:劉永,18歲,金錢設(shè)置為10000,查看金錢余額,調(diào)用聽課方法,打印城市;最后創(chuàng)建一個學(xué)生實例wu,構(gòu)造函數(shù)的參數(shù)為:吳敏,16歲,金錢設(shè)置為9000,查看金錢余額,調(diào)用聽課方法,修改城市屬性并打印。代碼如下:

  1. if __name__ == '__main__'
  2.     Student.class_discipline() 
  3.     liu = Student('劉永'18
  4.     liu.set_money(10000
  5.     liu.get_money() 
  6.     liu.on_grade() 
  7.     Student.show_city() 
  8.     wu = Student('吳敏'16
  9.     wu.set_money(9000
  10.     wu.get_money() 
  11.     wu.on_grade() 
  12.     Student.set_city('上海'
  13.     Student.show_city() 

建議將這個程序使用腳本模式運行,運行結(jié)果:

  1. 1.上課認(rèn)真聽講!  
  2. 2.不準(zhǔn)遲到早退!  
  3. 3.不準(zhǔn)交頭接耳!  
  4.  
  5. 劉永有10000 RMB 
  6. 劉永在認(rèn)真聽課 
  7. 北京人 
  8. 吳敏有9000 RMB 
  9. 吳敏在認(rèn)真聽課 
  10. 上海人 

 

文章“【Python基礎(chǔ)知識】類中的屬性裝飾器和綜合案例”已幫助

>>本文地址:http://www.jecan.cn/zhuanye/2021/68020.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計室內(nèi)設(shè)計
  • 平面設(shè)計平面設(shè)計
  • 電商設(shè)計電商設(shè)計
  • 網(wǎng)頁設(shè)計網(wǎng)頁設(shè)計
  • 全鏈路UI/UE設(shè)計UI設(shè)計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發(fā)智能機器人
 

快速通道fast track

近期開班時間TIME

主站蜘蛛池模板: 创客匠人-让IP变现不走弯路| 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 单柱拉力机-橡胶冲片机-哑铃裁刀-江都轩宇试验机械厂 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 四川成人高考_四川成考报名网 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 14米地磅厂家价价格,150吨地磅厂家价格-百科 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 背压阀|减压器|不锈钢减压器|减压阀|卫生级背压阀|单向阀|背压阀厂家-上海沃原自控阀门有限公司 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 周易算网-八字测算网 - 周易算网-宝宝起名取名测名字周易八字测算网 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | 无味渗透剂,泡沫抑尘剂,烷基糖苷-威海威能化工有限公司 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 泉州陶瓷pc砖_园林景观砖厂家_石英砖地铺石价格 _福建暴风石英砖 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 深圳成考网-深圳成人高考报名网| 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 大型低温冷却液循环泵-低温水槽冷阱「厂家品牌」京华仪器_京华仪器 |