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函数执行前后增加额外的行为
Oct 20 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
python实现自动发送邮件
Jun 20 Python
python字典的常用方法总结
Jul 31 Python
tesserocr与pytesseract模块的使用方法解析
Aug 30 Python
python爬虫 Pyppeteer使用方法解析
Sep 28 Python
python中必要的名词解释
Nov 20 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
python实现数字炸弹游戏程序
Jul 17 Python
详解Python中import机制
Sep 11 Python
基于Python实现对比Exce的工具
Apr 07 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
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python中字符串前面加r的作用
2015/06/04 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
在python 中实现运行多条shell命令
2019/01/07 Python
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
人力管理专业毕业生求职信
2014/02/27 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
Go语言读取txt文档的操作方法
2022/01/22 Golang
我收到了德劲DE1107
2022/04/05 无线电