Python中property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回

property属性的有两种方式:

  1. 装饰器 即:在方法上应用装饰器

   2. 类属性 即:在类中定义值为property对象的类属性

装饰器:

装饰器类有三种访问方式,并分别对应了三个被@property、@方法名.setter、@方法名.deleter修饰的方法,定义为对同一个属性:获取、修改、删除

  class Goods(object):

      def __init__(self):
  # 原价
  self.original_price = 100
  # 折扣
  self.discount = 0.8   @property
  def price(self):
  # 实际价格 = 原价 * 折扣
  new_price = self.original_price * self.discount
  return new_price   @price.setter
  def price(self, value):
  self.original_price = value   @price.deleter
  def price(self):
  del self.original_price   obj = Goods()
  obj.price # 获取商品价格
  obj.price = 200 # 修改商品原价
  del obj.price # 删除商品原价 类属性

  property方法中有个四个参数

    第一个参数是方法名,调用 对象.属性 时自动触发执行方法,对应获取功能

    第二个参数是方法名,调用 对象.属性 = XXX 时自动触发执行方法,对应修改功能

    第三个参数是方法名,调用 del 对象.属性 时自动触发执行方法,对应删除功能

    第四个参数是字符串,调用 对象.属性.__doc__ ,此参数是该属性的描述信息

    class Goods(object):

        def __init__(self):
    # 原价
    self.original_price = 100
    # 折扣
    self.discount = 0.8     def get_price(self):
    # 实际价格 = 原价 * 折扣
    new_price = self.original_price * self.discount
    return new_price     def set_price(self, value):
    self.original_price = value     def del_price(self):
    del self.original_price     PRICE = property(get_price, set_price, del_price, '价格属性描述...')     obj = Goods()
    obj.PRICE # 获取商品价格
    obj.PRICE = 200 # 修改商品原价
    del obj.PRICE # 删除商品原价
 

python 中 property 属性的讲解及应用的更多相关文章

  1. python中property属性的介绍及其应用

    Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回. 使用property修饰的实例方法被调用时,可以把它当做实例属性一样 property的 ...

  2. Python中property属性的概论和使用方法

    property属性 概念: 定义一个方法但是使用装饰器property,只可以有一个self形参 可以用这样的属性动态的获取属性的值 定义方式(经典类) class Fun(): @property ...

  3. python 中property函数如何实现

    实际上,在python中property(fget,fset,fdel,doc)函数不是一个真正的函数,他其实是拥有很多特殊方法的类. 这特殊类总的很多方法完成了property函数中的所有工作,涉及 ...

  4. python中@property装饰器的使用

    目录 python中@property装饰器的使用 1.引出问题 2.初步改善 3.使用@property 4.解析@property 5.总结 python中@property装饰器的使用 1.引出 ...

  5. 【转】python之property属性

    1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # ############### 定义 ############### class Foo: def ...

  6. OC中@property属性关键字的使用(assign/weak/strong/copy)

    OC中@property属性关键字的使用(assign/weak/strong/copy) 一.assign 用于 ‘基本数据类型’.‘枚举’.‘结构体’ 等非OC对象类型 eg:int.bool等 ...

  7. Python中的属性访问与描述符

    Python中的属性访问与描述符 请给作者点赞--> 原文链接 在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个nam ...

  8. Python中的属性管理

    Python管 理属性的方法一般有三种:操作符重载(即,__getattr__.__setattr__.__delattr__和 __getattribute__,有点类似于C++中的重载操作符).p ...

  9. python之property属性

    Property的概念:property是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值. import math class Circle: def __init__(self,radi ...

随机推荐

  1. RedisTemplate和StringRedisTemplate

    最近在开始在学习Redis以及如何在Java当中去使用Redis,Redis是什么我这里就不说了. 我主要想说的是Redis和Java当中Spring结合起来的时候,使用到的RedisTemplate ...

  2. 20145302张薇《Java程序设计》实验一报告

    20145302 <Java程序设计>实验一:Java开发环境的熟悉 实验内容 使用dos命令行编译.运行简单的Java程序: 使用IDEA编辑.编译.运行.调试Java程序. 1.命令行 ...

  3. 20144303 《Java程序设计》第三周学习总结

    20144303 <Java程序设计>第三周学习总结 教材学习内容总结 •对象是存在的具体实体,具有明确的状态和行为,类是具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属 ...

  4. python安装包下载慢的问题 | Python

    复制链接,打开迅雷就开始下载了.

  5. AccessToken-->Password Grant

    https://www.oauth.com/oauth2-servers/access-tokens/password-grant/ The Password grant is used when t ...

  6. BZOJ4765: 普通计算姬

    BZOJ4765: 普通计算姬 题目描述 传送门 题目分析 求的和非常奇怪,不具有连续性,所有上树的数据结构全死了. 考虑分块,思考对于一段连续的询问区间可以直接询问整块,零散块可以在树上dfs序暴力 ...

  7. hadoop项目实战--ETL--(二)实现自动向mysql中添加数据

    四 项目开发 1 创建数据库db_etl,新建两张表user 和oder.表结构如第一部分图所示. 2 编写python脚本,实现自动向mysql中插入数据. 新建python 项目,目录结构如下图 ...

  8. bugfree登录后报错PHP Fatal error: Call-time pass-by-reference has been removed in

    详细报错信息[Tue Apr 25 06:49:07.556316 2017] [:error] [pid 21799] [client *.*.*.*:55813] PHP Fatal error: ...

  9. php入门(一)

    一,在HTML中嵌入php代码 先看html的代码: <form action="processorder.php" method="post"> ...

  10. Struts2框架学习第二章——Struts2下的HelloWorld

    本章要点 —  Struts 2的下载和安装 — 纯手工创建一个Web应用 — 纯手工创建一个Struts 2应用 — 实现Struts 2的Action — 配置Struts 2的Action — ...