Python基于property实现类的特性操作示例


Posted in Python onJune 15, 2018

本文实例讲述了Python基于property实现类的特性操作。分享给大家供大家参考,具体如下:

Python中的特性是一个函数,但是在使用的形式上看起来更像是一个属性。针对一个对象来说,与属性相比,特性是不能够随意添加的。而对象的属性,默认情况下添加是十分简单的。

下面通过代码展示如何使用property实现特性:

# -*- coding:utf-8 -*-
#!python3
class MyClass:
  def __init__(self,val1,val2):
    self.val1 = val1
    self.val2 = val2
  @property
  def Sum(self):
    return self.val1 + self.val2
obj =MyClass(34,45)
print(obj.Sum)

程序的执行结果如下:

79

从上面的结果来看,特性在调用的时候跟属性是差不多的。如果通过类似方法的调用则会报错,下面修改代码如下:

# -*- coding:utf-8 -*-
#!python3
class MyClass:
  def __init__(self,val1,val2):
    self.val1 = val1
    self.val2 = val2
  @property
  def Sum(self):
    return self.val1 + self.val2
obj =MyClass(34,45)
print(obj.Sum)
# wrong way tocall the Sum property
print(obj.Sum())

程序执行结果如下:

79
Traceback (most recent call last):
  File "C:\py3\3waterPyDemo\src\Demo\propertyDemo.py", line 13, in <module>
    print(obj.Sum())
TypeError: 'int' object is not callable

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python使用arp欺骗伪造网关的方法
Apr 24 Python
深入了解Python数据类型之列表
Jun 24 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
python实现猜单词小游戏
May 22 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
python使用ctypes调用扩展模块的实例方法
Jan 28 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
python 实现性别识别
Nov 21 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 Python
Python中Selenium对Cookie的操作方法
Jul 09 Python
使用python 3实现发送邮件功能
Jun 15 #Python
快速解决pandas.read_csv()乱码的问题
Jun 15 #Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 #Python
Python使用Pickle库实现读写序列操作示例
Jun 15 #Python
基于Pandas读取csv文件Error的总结
Jun 15 #Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 #Python
python微信公众号之关键词自动回复
Jun 15 #Python
You might like
再说下636单管机
2021/03/02 无线电
Search Engine Friendly的URL设计
2006/10/09 PHP
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
php中error与exception的区别及应用
2014/07/28 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
js实现简单鼠标跟随效果的方法
2015/04/10 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
Python sorted对list和dict排序
2020/06/09 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
试解释COMMIT操作和ROLLBACK操作的语义
2014/07/25 面试题
合作经营协议书范本
2014/04/17 职场文书
广告宣传策划方案
2014/05/21 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js