面向对象----封装之proprty
封装之 property: property是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值。 把类体的方法,通过property函数来装饰,装饰过的方法对象可以通过调用属性的方式来调用, 对象名 +‘.’+属性名 例: BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法, 如果我们将其做成一个属性,更便于理解) 成人的BMI数值:过轻:低于18.5正常:18.5-23.9过重:24-27肥胖:28-32非常肥胖, 高于32 体质指数(BMI)=体重(kg)÷身高^2(m) EX:70kg÷(1.75×1.75)=22.86
1 class PeopleBMI: 2 def __init__(self,name,weight,height): 3 self.name=name 4 self.weight=weight 5 self.height=height 6 7 @property 8 def bim(self): 9 """ 10 定义bim方法 11 :return: 12 """ 13 return self.weight / (self.height**2) 14 # 定义对象 15 yangwei=PeopleBMI('yangwei',62.5,1.7) 16 """ 17 这样我们就可以直接加点来调用。 18 调用yangwei.bmi本质就是触发函数bmi的执行, 19 从而拿到其返回值 20 21 """ 22 print(yangwei.bim)
通过调用property属性 又衍生了 setter 与 deleter 两个装饰器。
![](/assets/blank.gif)
![](/assets/blank.gif)
1 class PeopleBMI: 2 def __init__(self,name,weight,height): 3 self.__name=name #把name属性隐藏起来。 4 self.weight=weight 5 self.height=height 6 @property 7 def name(self): 8 print('你正在访问用户名!') # 我们可以加一系列逻辑判断。 9 return self. __name 10 11 @name.setter #按照原方法调用 12 def name(self,nname): 13 if type(nname)is not str: 14 raise TypeError('必须为str 类型') 15 self.__name=nname 16 17 @name.deleter 18 def name(self): 19 print('确认删除吗?') 20 del self.__name 21 22 obj=PeopleBMI('yangwei',62,1.7) 23 del obj.name 24 obj.name='egon'
View Code
转载于:https://www.cnblogs.com/yangwei666/p/8856175.html
面向对象----封装之proprty相关推荐
- JS面向对象一:MVC的面向对象封装
JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) 面向对象里面向的意思是以...为主,面向对象编程既以对象为主的编程. 面向对象的一 ...
- 面向对象-封装、继承、多态
面向对象-封装.继承.多态 面向对象-封装 一.封装: private 数据类型 _名字; --成员变量 public 默认一致 名字 属性 { get{ return _名字; } set{ ...
- javascript对XMLHttpRequest异步请求的面向对象封装
对XMLHttpRequest异步请求的面向对象封装,需要的朋友可以参考下 function CallBackObject() { this.XmlHttp = this.GetHttpObject( ...
- php面向对象分页,PHP基于面向对象封装的分页类示例
本文实例讲述了php基于面向对象封装的分页类.分享给大家供大家参考,具体如下: class page { protected $num;//每页显示条数 protected $total;//总记录数 ...
- python封装举例_Python面向对象封装操作案例详解
本文实例讲述了Python面向对象封装操作.分享给大家供大家参考,具体如下: 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性 和 ...
- Python基础day09【面向对象(封装、继承、多态)、重写、私有权限】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day09[面向对象(封装.继承.多态).重写.私有权限] Python基础day ...
- python-面向对象-05_面向对象封装案例 II
面向对象封装案例 II 目标 士兵突击案例 身份运算符 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象, ...
- Python之 面向对象封装案例
面向对象封装案例 目标 封装 小明爱跑步 存放家具 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象,然后 ...
- python 面向对象的封装_Python面向对象封装操作案例详解
本文实例讲述了Python面向对象封装操作.分享给大家供大家参考,具体如下: 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 ―― 将 属性 和 ...
最新文章
- 直接插入排序比较次数_插入排序(C++)
- C#_获取文件路径中的文件名_扩展名
- Excel学习使用教程
- Python的if条件语句(常用)当为多个判定条件时
- 【转】关于23种设计模式的有趣见解
- 拼多多台式计算机主机,拼多多电脑端直播常见问题及解决方案汇总
- mui 图片预览(3)
- 外贸群发软件不好用,邮件群发很苦恼
- python设计一个动物类_「Python」每日一练:设计圆类计算周长和面积、设计动物类...
- html如何让网页的字变小,网页的字变小了怎么办 网页字体调整方法【图文】
- 计算机windows无法加载怎么办,win7开机提示由于系统注册表文件丢失或损坏因此无法加载怎么办...
- java 动态规划找零钱_初探动态规划——LeetCode找零钱问题
- VS2022无法打开Silverlight 项目的问题:改用VS2015
- javascript获取FileUpLoad上传空间的文件大小
- vue移动端实现聊天功能
- 超详细的Tomcat性能监控及调优教程
- 2021-09-07 简单田忌赛马
- systemverilog中门类型-2-双向通过开关bidirectional pass switches
- 张家界三日游攻略 | 张家界三天怎么玩
- 听说你不想上班,想成为自由职业者