python中@property装饰器怎么用


这篇文章主要介绍python中@property装饰器怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先简单上个小栗子说明:class property(fget=None,fset=None,fdel=None,doc=None)fget是用于获取属性值的函数fset是用于设置属性值的函数fdel是用于删除属性值的函数doc为属性对象创建文档字符串使用property可以讲类的方法变成同名属性,使用起来更加简洁,最后实例展示使用时建议直接用property的装饰器用法, 比较简洁,下面是官方示例,利用@property装饰方法x将其变成名称相同的属性, 通过fget, fset, fdel可以控制x的读写删属性.话不多说, 直接上例子, 在Man这个类中设置一个可读可写的birthYear属性,一个可读gender属性,一个可读可写可删的体重属性,还有一个利用birthYear推算出的age属性输出结果:Lilei今年25岁性别无法进行更改!lilei减肥前的体重:180lilei减肥后的体重:200lilei减肥失败后一气之下将免费云主机域名体重信息删了找不到lilei的体重信息!现在让我们直观看一下python内置property修饰器为什么会存在,可以用来解决什么问题?先来一个具体的例子,定义一个表示摄氏度的class并且这个类包含一个从摄氏度转换到华氏温度的方法。输出结果:37
98.60000000000001但是如果现在有人让human.temperature = -300, 我们知道摄氏温度是不可能低于-273.15的,此时需要对温度值进行限制, 常规方法是设置一个温度值的settergetter的方法,此时温度值存放在_temperature中毫无疑问,在设置温度值等于-300的时候肯定会报错,但是这个时候你可能发现设置和获取温度值的代码发生变化而且更复杂并且你需要对Celsius类的初始化函数进行更改,self.temperature = temperatureself.set_temperature(temperature), 如果现在是一个拥有很多属性的类, 一个一个去进行这样的更改是很麻烦的,而且可能会导致与这个类别相关的代码出现错误, 有没有更好的实现方式呢?这个时候就该今天的主角property装饰器出场了输出结果:设置温度值…
设置温度值…
获取温度值…
37
获取温度值…
98.60000000000001
设置温度值…
—————————————————————————
ValueError Traceback (most recent call last)
d:2.githubpython_demo16_decorator.py in
30
31 #测试温度限制功能
—> 32 human.temperature = -300
d:2.githubpython_demo16_decorator.py in temperature(self, value)
16 print(“设置温度值…”)
17 if value —> 18 raise ValueError(“摄氏温度不可能低于 -273.15 !”)
19 self._temperature = value
20ValueError: 摄氏温度不可能低于 -273.15 !可以看到此时temperature设置有限制而且获取和设置温度值的代码与初始版本一模一样,也就是说代码可以向后兼容以上是“python中@property装饰器怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注百云主机行业资讯频道!

相关推荐: 如何使用Java爬虫批量爬取图片

本篇内容主要讲解“如何使用Java爬虫批量爬取图片”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Java爬虫批量爬取图片”吧! 对于这种图片的获取,其实本质上就是就是文件的下载(HttpClient)。但是…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/18 20:23
Next 07/18 20:23

相关推荐