python中@property和property函数常见使用方法示例


Posted in Python onOctober 21, 2019

本文实例讲述了python中@property和property函数常见使用方法。分享给大家供大家参考,具体如下:

1、基本的@property使用,可以把函数当做属性用

class Person(object):
  @property
  def get_name(self):
    print('我叫xxx')
def main():
  person = Person()
  person.get_name
if __name__ == '__main__':
  main()

运行结果:

我叫xxx

2、@property的set,deleter,get

class Goods(object):
  @property
  def price(self):
    print('@property')
  @price.setter
  def price(self,value):
    print('@price.setter:'+str(value))
  @price.deleter
  def price(self):
    print('@price.deleter')
obj = Goods()
obj.price = 50
obj.price
del obj.price

运行结果:

@price.setter:50
@property
@price.deleter

3、@property demo

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

4、property函数使用

class Foo(object):
  def get_name(self):
    print('get_name')
    return 'laowang'
  def set_name(self, value):
    '''必须两个参数'''
    print('set_name')
    return 'set value' + value
  def del_name(self):
    print('del_name')
    return 'laowang'
  NAME = property(get_name, set_name, del_name, 'description.')
obj = Foo()
obj.NAME  #调用get方法
obj.NAME = 'alex'  #调用set方法
desc = Foo.NAME.__doc__   #调用第四个描述
print(desc)
del obj.NAME  #调用第三个删除方法

运行结果:

get_name
set_name
description.
del_name

5、property函数操作私有属性的get和set方法

class Person(object):
  def __init__(self, age):
    self.__age = age
  def set_age(self, value):
    self.__age = value
  def get_age(self):
    return self.__age
  AGE = property(get_age, set_age)
person = Person(15)
person.AGE = 20
print(str(person.AGE))

运行结果:

20

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python统计字符串中指定字符出现次数的方法
Apr 04 Python
在Python中使用poplib模块收取邮件的教程
Apr 29 Python
python遍历数组的方法小结
Apr 30 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
TensorFlow实现模型评估
Sep 07 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 Python
python字符串替换re.sub()实例解析
Feb 09 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python如何求圆的面积
Jul 01 Python
python 日志模块logging的使用场景及示例
Jan 04 Python
python playwright之元素定位示例详解
Jul 23 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 #Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 #Python
python打印直角三角形与等腰三角形实例代码
Oct 20 #Python
python配置文件写入过程详解
Oct 19 #Python
python实现广度优先搜索过程解析
Oct 19 #Python
python字符串格式化方式解析
Oct 19 #Python
基于python3监控服务器状态进行邮件报警
Oct 19 #Python
You might like
php日历[测试通过]
2008/03/27 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python元组操作实例解析
2014/09/23 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
python 实现登录网页的操作方法
2018/05/11 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
国庆节演讲稿范文2014
2014/09/19 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
群众路线专项整治方案
2014/10/27 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
微信小程序调用python模型
2022/04/21 Python