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中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
Python实现将照片变成卡通图片的方法【基于opencv】
Jan 17 Python
python验证码识别实例代码
Feb 03 Python
Python日志模块logging基本用法分析
Aug 23 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
python并发编程 Process对象的其他属性方法join方法详解
Aug 20 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
用 python 进行微信好友信息分析
Nov 28 Python
Pandas 数据编码的十种方法
Apr 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 运行效率总结(提示程序速度)
2009/11/26 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
php中异常处理方法小结
2015/01/09 PHP
33道php常见面试题及答案
2015/07/06 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
JS中的三个循环小结
2017/06/20 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
koa-router源码学习小结
2018/09/07 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
python实现ip查询示例
2014/03/26 Python
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
python中zip和unzip数据的方法
2015/05/27 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
中级会计职业生涯规划范文
2014/01/16 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
幼儿园教师个人总结
2015/02/05 职场文书