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模拟登陆阿里妈妈生成商品推广链接
Apr 03 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
python skimage 连通性区域检测方法
Jun 21 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
pycharm显示远程图片的实现
Nov 04 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Python unittest discover批量执行代码实例
Sep 08 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 Python
python爬虫之selenium库的安装及使用教程
May 23 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实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
python实现逻辑回归的示例
2020/10/09 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
python绘图模块之利用turtle画图
2021/02/12 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
自荐信如何“自荐”
2013/10/24 职场文书
酒店员工检讨书
2014/02/18 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers