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

相关文章

python实现微信机器人: 登录微信、消息接收、自动回复功能

python实现微信机器人: 登录微信、消息接收、自动回复功能

安装wxpy pip install -U wxpy 登录微信 # 导入模块 from wxpy import * # 初始化机器人,扫码登陆 bot = Bot() 运行以...

Python列表list数组array用法实例解析

本文以实例形式详细讲述了Python列表list数组array用法。分享给大家供大家参考。具体如下: Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺...

对python操作kafka写入json数据的简单demo分享

如下所示: 安装kafka支持库pip install kafka-python from kafka import KafkaProducer import json...

Python 基础教程之闭包的使用方法

Python 基础教程之闭包的使用方法 前言: 闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编...

Ubuntu下升级 python3.7.1流程备忘(推荐)

Ubuntu下升级 python3.7.1流程备忘(推荐)

下载源码 wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 解压源码 tar -xvzf Python-3.7....