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 字典(Dictionary)操作详解
Mar 11 Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
解决uWSGI的编码问题详解
Mar 24 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
Python中字典和集合学习小结
Jul 07 Python
python模仿网页版微信发送消息功能
Feb 24 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
Python class的继承方法代码实例
Feb 14 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 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 APC配置文件2套和参数详解
2014/06/11 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
PHP实现简单的计算器
2020/08/28 PHP
js prototype截取字符串函数
2010/04/01 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
tornado+celery的简单使用详解
2019/12/21 Python
如何基于python测量代码运行时间
2019/12/25 Python
python构造函数init实例方法解析
2020/01/19 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
英语专业学生的自我评价
2013/12/30 职场文书
入职担保书范文
2014/05/21 职场文书
市场营销策划方案
2014/06/11 职场文书
交通事故协议书范文
2014/10/23 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书
python实现简单倒计时功能
2021/04/21 Python
python tkinter Entry控件的焦点移动操作
2021/05/22 Python