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使用新浪微博api上传图片到微博示例
Jan 10 Python
python批量提交沙箱问题实例
Oct 08 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
python破解zip加密文件的方法
May 31 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
详解Python类和对象内容
Jun 22 Python
python脚本框架webpy模板赋值实现
Nov 20 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后台备份MySQL数据库的源码实例
2019/03/18 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
javascript 新浪背投广告实现代码
2009/07/07 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python中的decorator的作用详解
2018/07/26 Python
python使用tornado实现简单爬虫
2018/07/28 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
入党积极分子介绍信
2014/01/17 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
队列队形口号
2015/12/25 职场文书
php修改word的实例方法
2021/11/17 PHP
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js