python@property
property问题:
提示:这里简述项目相关背景:
@property装饰的成员函数,只能有一个参数self;不能和别的类属性同名;并且在调用时不需要加()。
适用情况:
@property装饰适合下面这些场景:
1.只读不可修改的属性。只需要实现@property
2.输入对setter进行判断。
3.需要实时地计算属性值。
针对第三种情况,例子如下:
class OHM():def __init__(self):self._U=1self._R=1@propertydef I(self):return self._U/self._R@propertydef R(self):return self._R@R.setterdef R(self,r):if r<=0:raise ValueError('r must >0')self._R=rohm=OHM()
ohm.R=1print(ohm.I)
总结:
在对a.value赋值时,实际上调用的是被@value.setter装饰的函数,我们可以在该函数进行判断数据类型、数据范围等。至此@property装饰适合下面这些场景:
1.只读不可修改的属性。只需要实现@property
2.输入对setter进行判断。
3.需要实时地计算属性值。
作者:深度学习可好玩了
链接:https://www.zhihu.com/question/264768240/answer/2137280984
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
python@property相关推荐
- python property内建函数的介绍
为什么80%的码农都做不了架构师?>>> 函数property的基本功能就是把类中的方法当作属性来访问,下面以一个有意思的例子介绍一下: 假如有一只猫,它忘了它喜欢吃什么,下面 ...
- python @property
在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻辑.为了限制score的 ...
- python property理解
一般情况下我这样使用property: @property def foo(self):return self._foo# 下面的两个decrator由@property创建 @foo.setter ...
- python property作用_python中@property的作用和getter setter的解释
@property作用: python的@property是python的一种装饰器,是用来修饰方法的. 我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同 ...
- python property函数_Python内置函数property()如何使用
代码 class Shuxing(): def __init__(self, size = 10): self.size = size def getSize(self): print('getSiz ...
- Python·@property属性
一.property属性 property属性可以用来给属性添加约束,比如温度属性,我们不允许低于-273度:成绩属性,我们不允许0分以下等等.而且使用property属性,将来修改约束条件的时候也很 ...
- Python property函数:定义属性
如果为 Python 类定义了 getter.setter 等访问器方法,则可使用 property() 函数将它们定义成属性(相当于实例变量). property() 函数的语法格式如下: prop ...
- Python @property 详解
Python 有一个概念叫做 property,它能让你在 Python 的面向对象编程中轻松不少.在了解它之前,我们先看一下为什么 property 会被提出. 一个简单的例子 比如说你要创建一个温 ...
- Python @property 用法
本文整理自<Effective Python 编写高质量 Python 代码的 59 个有效方法>第 29 条:用纯属性取代 get 和 set 方法. Python 类 public 属 ...
- python @property
@property 可以将python定义的函数"当做"属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的,我们视具体情况吧 请注意以下代码场景: ...
最新文章
- mybatis批量更新的两种实现方式
- Linux之grep命令
- [OS复习]进程互斥与同步1
- js实现php中sleep()延时的功能
- oracle实列关闭,Oracle单实例+ASM启动与关闭
- php 定义一个json对象,PHP中使用json数据格式定义字面量对象的方法
- Windows Phone 7 MVVM模式的学习笔记
- 曲线拐点快速寻找算法+C代码
- Xshell7 和 Xftp7 免费下载安装
- android解析json数据格式,Android编程解析Json格式数据的方法
- BitComet的简介与下载
- android x86睡死,【已解决】xps15 睡眠睡死
- [配置] 修改路由器的名称
- 查询最近12个月的数据SQL语句
- 淘宝搜索展现原理,店铺商品排名较低怎么办
- java 获取时间的方法
- sprint 1 的总结
- msra数据集_干货下载 | 中文自然语言处理 语料/数据集
- 怒写400篇AI文章!这群妹子卷疯了…
- 如何查找SAP notes
热门文章
- 对新手超友好的板绘工具推荐:数位板 or 数位屏 or Ipad
- qtp连接mysql数据库_QTP连接MYSQL数据库方法
- 正则表达式验证邮箱地址abc132@163.com
- 谁还记得这些国产机?两年前还热火朝天
- 一个简单的方法,教你同时查顺丰多个单号的物流信息
- 从0到1完成一个Vue后台管理项目(九、引入Breadcrumb面包屑,更改bug)
- 【老生谈算法】matlab实现画交通流密速关系源码——交通流密速
- 基于net.tcp的WCF配置实例解析
- 浅谈surface go与ipad 2018
- 百度Apollo星火自动驾驶—慢速车绕行