Python @property使用方法解析

yipeiwu_com6年前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设计】。

相关文章

python PIL/cv2/base64相互转换实例

PIL和cv2是python中两个常用的图像处理库,PIL一般是anaconda自带的,cv2是opencv的python版本。base64在网络传输图片的时候经常用到。 ##PIL...

浅谈python中统计计数的几种方法和Counter详解

1) 使用字典dict() 循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1. lists = ['...

python编程测试电脑开启最大线程数实例代码

python编程测试电脑开启最大线程数实例代码

本文实例代码主要实现python编程测试电脑开启最大线程数,具体实现代码如下。 #!/usr/bin/env python #coding=gbk import thr...

使用OpenCV实现仿射变换—平移功能

使用OpenCV实现仿射变换—平移功能

当我们打开一个图片编辑软件时,基本上都会提供几个操作:平移、缩放和旋转。特别目前在手机里拍照时,由于位置传感器的失灵,也许是软件的BUG,有一次我就遇到苹果手机不管怎么样竖放,或横放,它...

python PIL模块与随机生成中文验证码

python PIL模块与随机生成中文验证码

在这之前,你首先得了解Python中的PIL库。PIL是Python Imaging Library的简称,PIL是一个Python处理图片的库,提供了一系列模块和方法,比如:裁切,平移...