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中requests库session对象的妙用详解
Oct 30 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
Python扩展内置类型详解
Mar 26 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
Django框架 querySet功能解析
Sep 04 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
python绘制高斯曲线
Feb 19 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
Apr 14 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
第三章 php操作符与控制结构代码
2011/12/30 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
浅析php原型模式
2014/11/25 PHP
Yii2中datetime类的使用
2016/12/17 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
javascript比较文档位置
2008/04/08 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
Vuex提升学习篇
2018/01/11 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
深入理解Python中的元类(metaclass)
2015/02/14 Python
python使用str & repr转换字符串
2016/10/13 Python
Python中with及contextlib的用法详解
2017/06/08 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
python 批量修改/替换数据的实例
2018/07/25 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
园林技术专业求职信
2014/07/28 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书