位置: 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 文档)

  • 贴现法付息的有效年利率
  • 免税发票是增值税发票吗
  • 借款利息收入要开票吗
  • 19年高速公路免费时间
  • 公司购个人的二手车流程
  • 净资本和净资产区别
  • 以前暂估的成本,年终要冲销怎么做账
  • 税控盘维护费要交吗
  • 铁路大票抵扣几个点
  • 一般纳税人计提水利基金会计分录
  • 预借差旅费,付给现金会计分录
  • 国有企业无偿划转资产需要交税吗?
  • 生产设备购买交付会计分录
  • 收到供应商违约金 发票
  • 报销定额备用金什么意思
  • 关于工资薪金的情况说明
  • 补记去年收入分录
  • 小规模纳税人咨询服务费税率是多少
  • 投资决策中常用的指标有
  • 公司向外单位借款摘要怎么写
  • 客户到款打到子公司账上如何转回
  • 进项税借方有余额要怎么处理
  • 背书转让后的电子承兑怎么打印
  • 电子发票财务怎么操作
  • 以前年度损益调整
  • 如何使用ping命令诊断网络故障
  • 公司减少注册资本时,应当自作出减少
  • 转让二手宾馆需要注意事项
  • psbcie.exe是什么
  • 员工报销可以从一般账户转出吗
  • shpc32.exe - shpc32是什么进程 有什么用
  • 单位支付安装天然气费
  • win10如何添加网络适配器
  • 招待费审批流程
  • 收到现金股利会引起什么变化
  • 企业重组并购条件
  • 单位春节发的过生日红包
  • 原生php写接口
  • 暴风雪的寒冷
  • 实收资本明细账模板
  • 土地使用税计入管理费用还是税金及附加
  • 单位有残疾人能享受
  • 申报水利基金的流程
  • 收到股利的会计分录
  • css边框实现效果图及代码
  • 小规模收入超过30万的会计分录大全
  • 没有发票的公账报销了怎么入账
  • 融资租赁的种类
  • 公司裁员怎么补偿
  • sql查询结果分页
  • 购买房屋缴纳的契税可以退税政策
  • 企业用现金支付本企业职工工资时应
  • 什么情况下需要异地预缴增值税
  • 无形资产达到可使用状态前如何入账
  • 土地承包经营权上的房屋
  • 暂估入账的固定资产
  • 总公司和分公司如何分离
  • 怎么查对方是一般还是小规模
  • 水果销售公司怎么起名字好听
  • 产品是如何产生的
  • 卡片式账簿的优点是能够避免账页散失
  • 远程登陆服务器命令
  • 关于中秋节的古诗
  • win10 rs1是什么版本
  • centos7 ifcfg-lo
  • 安装完xp系统直接黑屏怎么办
  • win10家庭版怎么关闭windows defender
  • win10系统自定义设置
  • webpack 主题切换
  • android开发环境的搭建实验总结
  • javascript详解
  • node性能优化
  • 查看流量的命令
  • jquery操作checkbox火狐下第二次无法勾选的解决方法
  • js扩展名是什么文件
  • python自动化监控
  • android菜鸟教程
  • 通讯费报销会计分录
  • 12366纳税服务热线的接通率
  • 个体开专用票需要进项吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设