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 13 Python
win与linux系统中python requests 安装
Dec 04 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
python直接获取API传递回来的参数方法
Dec 17 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
用django设置session过期时间的方法解析
Aug 05 Python
python银行系统实现源码
Oct 25 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
Python识别验证码的实现示例
Sep 30 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新手上路(十三)
2006/10/09 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php学习之function的用法
2012/07/14 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
tsconfig.json配置详解
2019/05/17 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
Python数据正态性检验实现过程
2020/04/18 Python
浅析python实现动态规划背包问题
2020/12/31 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
HTML5地理定位实例
2014/10/15 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
党员民主评议个人总结
2014/10/20 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
社区服务活动感想
2015/08/11 职场文书