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 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
Python生成验证码实例
Aug 21 Python
python实现人脸识别代码
Nov 08 Python
Django实现组合搜索的方法示例
Jan 23 Python
python 定时修改数据库的示例代码
Apr 08 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
Python中的枚举类型示例介绍
Jan 09 Python
python读取图片任意范围区域
Jan 23 Python
Python中常用的高阶函数实例详解
Feb 21 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 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代码
2010/08/08 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
python3实现名片管理系统
2020/11/29 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
python实现四人制扑克牌游戏
2020/04/22 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
职工趣味运动会方案
2014/02/10 职场文书
信访维稳工作汇报
2014/10/27 职场文书
工伤私了协议书范本
2014/11/24 职场文书
道歉的话怎么说
2015/05/12 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技