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. AVAudioSession(4):响应音频中断事件

    本文转自:AVAudioSession(4):响应音频中断事件 | www.samirchen.com 本文内容主要来源于 Responding to Interruptions. 当一个音频中断到来 ...

  2. Java读者写者问题

    实验存档. 允许好几个人同时读,但是不允许在有人读的时候写,以及同一时间只能有一个人在写. 读者.java: package operating.entity.readerwriter; import ...

  3. RocEDU.阅读.写作《苏菲的世界》书摘(四)

    亚理斯多德认为,快乐有三种形式.一种是过着享乐的生活,一种是做一个自由而负责的公民,另一种则是做一个思想家与哲学家.接着,他强调,人要同时达到这三个标准才能找到幸福与满足. 亚理斯多德提倡所谓的&qu ...

  4. LeetCode (65):Same tree

    Total Accepted: 83663 Total Submissions: 200541 Difficulty: Easy Given two binary trees, write a fun ...

  5. mysql增加远程访问

    grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

  6. VirtualBox安装RedHat7

    软件准备 VirtualBox-5.2.8-121009-Win.exe rhel-server-7.4-x86_64-dvd.iso 安装环境 win10 安装步骤: 1.先在win10系统中安装V ...

  7. LeetCode——Find Minimum in Rotated Sorted Array II

    Question Follow up for "Find Minimum in Rotated Sorted Array": What if duplicates are allo ...

  8. codeforce 35C fire again

    2017-08-25 17:04:07 writer:pprp 题目描述: • Codeforces 35C Fire Again• N*M的格子,最开始有K个点 (坐标给定) 开始着火• 每一秒着火 ...

  9. RabbitMQ入门(5)——主题(Topic)

    前面我们介绍了通过使用direct exchage,改善了fanout exchange只能进行虚拟广播的方式.尽管如此,直接交换也有自身的局限,它不能基于多个条件路由. 在我们的日志系统中,也许我们 ...

  10. 前端项目,引入PingFang SC字体

    在仿苹果官网"垃圾桶"时, 设计出的UI使用PingFang SC 字体,在网上查了很久,特记录.如果你有更好的方法,欢迎评论留言~ 实现原理,使用@font-face将字体下载在 ...