位置: IT常识 - 正文

Python学习:property装饰器(pythonproperty)

编辑:rootadmin
1.property 装饰器:装饰器是在不修改被装饰对象源代码以及调用方式的前提下为被装饰对象添加新功能的可调用对象 property是一个装饰器,是用来绑定给对象的方法伪造成一个数据属性 装饰器property,可以将类中的函数“伪装成”对象的数据属性,对象在访问该特殊属性时会触发功能的执行,然后 ... 1.property

推荐整理分享Python学习:property装饰器(pythonproperty),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python prob,python@property,python学习路线,python学习路线,prophet python,prophet python,python prog,python学习手册 第5版 pdf,内容如对您有帮助,希望把文章链接给更多的朋友!

装饰器:装饰器是在不修改被装饰对象源代码以及调用方式的前提下为被装饰对象添加新功能的可调用对象

property是一个装饰器,是用来绑定给对象的方法伪造成一个数据属性

Python学习:property装饰器(pythonproperty)

装饰器property,可以将类中的函数“伪装成”对象的数据属性,对象在访问该特殊属性时会触发功能的执行,然后将返回值作为本次访问的结果。

使用property有效地保证了属性访问的一致性。另外property还提供设置和删除属性的功能

应用场景:有的功能属性听起来更像数据属性,python则提供了一种装饰器,可以将功能属性伪装成数据属性

2.案例:"""成人的BMI数值:过轻:低于18.5正常:18.5-23.9过重:24-27肥胖:28-32非常肥胖, 高于32  体质指数(BMI)=体重(kg)÷身高^2(m)  EX:70kg÷(1.75×1.75)=22.86"""  

案例一:

class People: def __init__(self, name, weight, height): self.name = name self.weight = weight self.height = height# 定义函数的原因1:# 1、从bmi的公式上看,bmi应该是触发功能计算得到的# 2、bmi是随着身高、体重的变化而动态变化的,不是一个固定的值# 说白了,每次都是需要临时计算得到的# 但是bmi听起来更像是一个数据属性,而非功能 @property def bmi(self):return self.weight / (self.height ** 2) obj1 = People('egon', 70, 1.83) print(obj1.bmi()) obj1.height=1.86 print(obj1.bmi()) print(obj1.bmi)

案例二:

'''学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!''' class People: def __init__(self, name): self.__name = name def get_name(self): return self.__name def set_name(self, val): if type(val) is not str: print('必须传入str类型') return self.__name = val def del_name(self): print('不让删除') # del self.__name name=property(get_name,set_name,del_name) obj1=People('egon') # print(obj1.get_name()) # obj1.set_name('EGON') # print(obj1.get_name()) # obj1.del_name() # 人正常的思维逻辑 print(obj1.name) # # obj1.name=18 # del obj1.name

案例三:

class People: def __init__(self, name): self.__name = name @property def name(self): # obj1.name return self.__name @name.setter def name(self, val): # obj1.name='EGON' if type(val) is not str: print('必须传入str类型') return self.__name = val @name.deleter def name(self): # del obj1.name print('不让删除') # del self.__nameobj1=People('egon')# 人正常的思维逻辑print(obj1.name) ## obj1.name=18# del obj1.name
本文链接地址:https://www.jiuchutong.com/zhishi/313038.html 转载请保留说明!

上一篇:全面理解JSX(全面理解健康教案)

下一篇:Protobuf生成文件报错(protobuf 文档)

  • 股份有限公司董事会决议必须经过
  • 会计核算职能有哪些特征
  • 什么情况下一般纳税人可以简易征收
  • 咨询服务合同印花税税目
  • 现金支票填写注意事项有哪些
  • 计提工资和应付职工薪酬怎么不一样
  • 采购入库损耗如何计算
  • 税务社保扣取300干嘛的
  • 银行存款未达账项包括
  • 年度汇算清缴怎么填写
  • 税务局开票需要带什么材料
  • 从2017年7月1日起到现在多少天
  • 烟酒发票可以抵扣所得税吗
  • 企业自产自用需要交增值税吗
  • 公司小汽车多少年报废
  • 申报预缴企业所得税
  • 如何计算工程预付款
  • 集团和区域公司的关系
  • 个体工商户季度申报报税流程
  • 增值税普通发票几个点
  • 办公车辆汽油费计入什么科目
  • 开办费 工资
  • 职工薪酬核算的内容
  • linux系统开机黑屏怎么办
  • 出纳日记账填写样本
  • 所得税以前年度亏损
  • 结算备付金的账户是什么
  • 缴纳公积金需要什么
  • 装win7提示失败怎么办
  • myfastupdate.exe - myfastupdate是什么进程文件 有什么用
  • lsass.exe是什么程序
  • js技术干货分享
  • 最新大麦抢票脚本
  • Java8 Stream流Collectors.toMap当key重复时报异常(IllegalStateException)
  • php gd库
  • uniapp编译原理
  • 进项税大于销项税,不用缴纳增值税
  • 增值税发票认证在哪里
  • php防止sql注入的方法
  • 以前年度损益调整
  • 注意力机制cbam
  • php常用时间函数
  • 招待费超出部分的分录
  • 上年科目记错如何更正
  • 加工费能直接抵税吗
  • php怎么修改当前用户的密码
  • 织梦怎么用
  • 提交表单数据有哪几种方法,php如何获取表单提交的数据
  • 门诊报销是怎么报的
  • 营业外支出罚没支出包括
  • 损益类科目如何填写手工总账
  • 食堂如何做账
  • 新手学会计怎么学
  • 合法有效的凭证是什么
  • Linux下安装MySQL5.7.19问题小结
  • windows注册表简单应用
  • vmware下ubuntu(linux)与主机文件共享设置的方法
  • freebsd怎么用
  • vc软件是什么软件
  • windows运行.sh
  • 如何用pe弄双系统引导
  • win10系统如何添加隐藏wifi
  • Ubuntu 12.04安装Xen常见问题及解决方法汇总
  • newdot.exe - newdot是什么进程 有什么用
  • iptables用法
  • win7旗舰版升级win10教程
  • Linux使用scp命令进行文件远程的上传或下载
  • javascript中的数字型可以用来保存整数或浮点数(小数)
  • 详细解读了
  • python 聚类算法包
  • js折叠展开特效
  • 手机截取电脑屏幕
  • python按位与操作
  • 地税局纪检组长黄斌简历
  • 可以抵扣的消费税项目
  • 江苏地税个税申报时间表
  • 出口退税正式申报资料上传
  • 所得税调增调减搞不清
  • 上海市办居住证流程
  • 市中区税务局办税大厅上班时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设