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

  • 钉钉直播老师可以知道学生分屏吗(钉钉直播老师可以听到学生说话吗)

    钉钉直播老师可以知道学生分屏吗(钉钉直播老师可以听到学生说话吗)

  • 抖音能上传多大的视频(抖音能上传多大的视频 上传视频文件大小限制多少)

    抖音能上传多大的视频(抖音能上传多大的视频 上传视频文件大小限制多少)

  • apple pencil 一代二代区别(applepencil一代插上没反应)

    apple pencil 一代二代区别(applepencil一代插上没反应)

  • 小米mix2s多重(小米mix2s多重多少克)

    小米mix2s多重(小米mix2s多重多少克)

  • 博朗耳温枪月龄不见了(博朗耳温枪月龄设置)

    博朗耳温枪月龄不见了(博朗耳温枪月龄设置)

  • 三星a90是双模5g吗(三星a90 5g是双卡双待吗)

    三星a90是双模5g吗(三星a90 5g是双卡双待吗)

  • 华为手机怎么把旧手机东西到到新手机上(华为手机怎么把时间放在桌面上)

    华为手机怎么把旧手机东西到到新手机上(华为手机怎么把时间放在桌面上)

  • 如何分享自己的抖音视频(要怎么分享)

    如何分享自己的抖音视频(要怎么分享)

  • 抖音点赞立马取消能看见吗(抖音点赞立马取消有显示吗)

    抖音点赞立马取消能看见吗(抖音点赞立马取消有显示吗)

  • 英特网是什么结构的网络(英特网是什么结构的网站)

    英特网是什么结构的网络(英特网是什么结构的网站)

  • 苹果七有红外线功能吗(苹果七红外线怎么开)

    苹果七有红外线功能吗(苹果七红外线怎么开)

  • 荣耀lldtl10什么型号(lldal10是什么型号)

    荣耀lldtl10什么型号(lldal10是什么型号)

  • 无基带怎么跳过激活(无基带怎么跳过解码)

    无基带怎么跳过激活(无基带怎么跳过解码)

  • 手机卡1卡2有什么区别(手机一卡和二卡有区别吗)

    手机卡1卡2有什么区别(手机一卡和二卡有区别吗)

  • 手机卡欠费影响征信吗(手机卡欠费影响办银行卡吗)

    手机卡欠费影响征信吗(手机卡欠费影响办银行卡吗)

  • 抖音怎么发长1分钟视频(抖音怎么发长视频2分钟以上的)

    抖音怎么发长1分钟视频(抖音怎么发长视频2分钟以上的)

  • 快手评论上限怎么清理(快手评论次数上限)

    快手评论上限怎么清理(快手评论次数上限)

  • windows7系统中的桌面是指(windows7中的有3种类型)

    windows7系统中的桌面是指(windows7中的有3种类型)

  • ipad加上键盘能当电脑(ipad加上键盘能当电脑办公吗)

    ipad加上键盘能当电脑(ipad加上键盘能当电脑办公吗)

  • 微信商业收款有限额吗(微信商业收款有风险吗)

    微信商业收款有限额吗(微信商业收款有风险吗)

  • 已买到的宝贝在哪里看(已买到的宝贝在哪里拼多多)

    已买到的宝贝在哪里看(已买到的宝贝在哪里拼多多)

  • 微信bundleid怎么解决(微信bundleid在哪设置)

    微信bundleid怎么解决(微信bundleid在哪设置)

  • MAC本装双系统后没有驱动解决方法(mac笔记本装了双系统后打开苹果系统和原来一样吗)

    MAC本装双系统后没有驱动解决方法(mac笔记本装了双系统后打开苹果系统和原来一样吗)

  • 路由器重启后电脑无法联网怎么办(路由器重启后电视放不出来咋办)

    路由器重启后电脑无法联网怎么办(路由器重启后电视放不出来咋办)

  • 小规模纳税人如何做账
  • 财务记录软件
  • 金税四期主要监管什么
  • 捐赠的费用放在什么科目
  • 生育津贴个税汇算清缴可以扣除吗
  • 施工企业营改增税费有哪些
  • 一般纳税人进项税额转出会计分录
  • 技术转让税收优惠政策500万
  • 设备销售并负责安装税率是多少
  • 餐费可以列入哪些费用明细
  • 税务稽查的四个环节
  • 含税价标志有无影响
  • 房地产开发经营企业确认当期因销售房地产
  • 个人所得税怎么交的,怎么算的
  • 固定资产处理怎么入账
  • 福利性补贴包括哪些
  • 应付政府补贴款名词解释
  • 无形资产和长期待摊费用思维导图
  • 印花税的征收项目
  • 工会资助贫困大学生
  • 盘盈的固定资产怎么做账务处理
  • osXYosemite怎么更新
  • linux sed 行尾
  • win11发布时间正式确定
  • php编写网站
  • 服装制造业现状和发展趋势
  • php实现购物车功能的方法
  • 微信小程序登录后端
  • 房屋租赁发票怎么入账
  • vue3与vue2的区别
  • opencv1.0
  • 多智能体概念
  • php7匿名函数
  • php 输出
  • 机械租赁税率是多少?
  • 收到银行的贷款怎么入账
  • 长期股权投资成本怎么计算
  • 网上学电脑
  • Python的aiohttp模块如何使用?
  • 织梦开发教程
  • 个税免税部分
  • 专项附加扣除哪种申报方式好
  • 施工企业结算单能不能入账
  • 进项税额转出期限是多久
  • 垃圾清运费属于什么服务
  • 退休人员的返聘合同
  • 活动经费要发到每个员工
  • 支付劳务公司的劳务费如何扣缴个人所得税?
  • 公司提供给员工暂借款未还款离职
  • 返聘的退休人员需不需要缴纳社保
  • 什么样的发票公司可以开
  • 销售的差额如何分录
  • 公司没开户需要做账吗怎么做
  • 买入返售证券什么意思
  • 商业承兑汇票开票流程
  • 如何防止mysql数据库攻击
  • vb.net with
  • linux/unix
  • cmos密码是什么
  • win7没有printtopdf
  • mac系统简介
  • Win7系统启动密码
  • win7系统怎么更改存储位置
  • 如何修改win7电脑用户密码
  • win8.1备份系统还原
  • js实现dialog
  • shell 批量执行命令
  • perl read
  • Xcode6 和 Cocos2dx3.1以下版本的不兼容问题
  • error C2258: illegal pure syntax, must be '= 0'
  • js时间计算相减
  • 简述jquery的实现原理
  • jquery选择器的使用
  • nodejs orm框架
  • nodejs连接mysql的历程
  • 深圳企业所得税税率多少
  • 关联企业之间借款的税收处理
  • 广西税务怎么交城乡养老保险
  • 企业承包经营责任制
  • 电子增值税专用发票和纸质增值税专用发票的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设