实战IT培训机构_黄色激情网站_IT培训班选大学生IT技术培训中心_黄色激情视频网站_中公优就业

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

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

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

1、類中的屬性裝飾器

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

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    # 進行加油 
  15. >>> print(falali.gaso)  # 打印油量 
  16. 100 

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

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

2、類的綜合案例

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

  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 

學生類中包含以下方法。

①實例方法:創建實例money屬性的get和set方法。

②私有方法:創建__study()方法,打印某某在認真聽課。

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

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

⑤靜態方法:創建class_discipline()方法,打印課堂紀律。

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

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

  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在認真聽課' % 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.上課認真聽講! \n'
  14.                '2.不準遲到早退! \n'
  15.                '3.不準交頭接耳! \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)) 

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

  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() 

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

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

 

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

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

THE END  

聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

1 您的年齡

2 您的學歷

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

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯網營銷互聯網營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯網嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網頁設計網頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發VR/AR
  • 網絡安全網絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發智能機器人
 

快速通道fast track

近期開班時間TIME

主站蜘蛛池模板: 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 低合金板|安阳低合金板|河南低合金板|高强度板|桥梁板_安阳润兴 北京租车牌|京牌指标租赁|小客车指标出租 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 金蝶帐无忧|云代账软件|智能财税软件|会计代账公司专用软件 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 创客匠人-让IP变现不走弯路 | China plate rolling machine manufacturer,cone rolling machine-Saint Fighter | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 刘秘书_你身边专业的工作范文写作小秘书| 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 屏蔽泵厂家,化工屏蔽泵_维修-淄博泵业 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 耐高温电缆厂家-远洋高温电缆 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 电梯装饰-北京万达中意电梯装饰有限公司 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 台式恒温摇床价格_大容量恒温摇床厂家-上海量壹科学仪器有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产 - 中工招商网 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 |