Python @property使用方法解析

yipeiwu_com7年前Python基础

1. 作用

将类方法转换为类属性,可以用 . 直接获取属性值或者对属性进行赋值

2.实现方式

使用property类来实现,也可以使用property装饰器实现,二者本质是一样的。多数情况下用装饰器实现。

class Student(object):
  @property
  def score(self):
    return self._score
  @score.setter
  def score(self, value):
    if not isinstance(value ,int):
      raise ValueError('分数必须是整数')
    if value <0 or value>100:
      raise ValueError('分数必须0-100之间')
    self._score = value
student = Student()student.score = 65print(student.score)65

score()方法上增加@property装饰器,等同于score= property(fget=score),将score赋值为property的实例。

所以,被装饰后的score,已经不是这个实例方法score了,而是property的实例score。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

ubuntu 16.04下python版本切换的方法

ubuntu 16.04下python版本切换的方法

本文主要是记录ubuntu 16.04下python环境配置,具体内容如下 对于ubuntu 16.04,由于本身是自带python,这样就减少了在windows下的下载和环境变量配置,...

详解Python Matplot中文显示完美解决方案

详解Python Matplot中文显示完美解决方案

原因与现象 Matplot是一个功能强大的Python图表绘制库,很遗憾目前版本自带的字体库中并不支持中文字体。所以如果在绘制内容中需要显示中文,那么就会显示为方格字符。 解决办法...

Python的条件表达式和lambda表达式实例

条件表达式 条件表达式也称为三元表达式,表达式的形式:x if C else y。流程是:如果C为真,那么执行x,否则执行y。 经过测试x,y,C可以是函数,表达式,常量等等; de...

Python psutil模块简单使用实例

安装很简单 复制代码 代码如下: pip install psutil 官网地址为: https://pythonhosted.org/psutil/ (文档上有详细的api) git...

python画双y轴图像的示例代码

很多时候可能需要在一个图中画出多条函数图像,但是可能y轴的物理含义不一样,或是数值范围相差较大,此时就需要双y轴。 matplotlib和seaborn都可以画双y轴图像。 一个例子:...