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实现图片批量剪切示例
Mar 25 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
python socket网络编程之粘包问题详解
Apr 28 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
Flask和pyecharts实现动态数据可视化
Feb 26 Python
Python类和实例的属性机制原理详解
Mar 21 Python
解析python 类方法、对象方法、静态方法
Aug 15 Python
利用python汇总统计多张Excel
Sep 22 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 Python
Python实现机器学习算法的分类
Jun 03 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
简单的PHP图片上传程序
2008/03/27 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
应聘教师推荐信
2013/10/31 职场文书
酒店led欢迎词
2014/01/09 职场文书
工作自我推荐信范文
2015/03/25 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
python playwright之元素定位示例详解
2022/07/23 Python