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实现域名系统(DNS)正向查询的方法
Apr 19 Python
浅谈Python中函数的参数传递
Jun 21 Python
python win32 简单操作方法
May 25 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
通过python检测字符串的字母
Feb 18 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
Python configparser模块封装及构造配置文件
Aug 07 Python
Python MNIST手写体识别详解与试练
Nov 07 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
javascript函数中的arguments参数
2010/08/01 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
jquery 使用简明教程
2014/03/05 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
详解参数传递四种形式
2015/07/21 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python中django学习心得
2017/12/06 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
如何基于Python创建目录文件夹
2019/12/31 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
高级Java程序员面试要点
2013/08/02 面试题
大专学生推荐信范文
2013/11/19 职场文书
应届毕业生自我鉴定范文
2013/12/27 职场文书
大学英语专业求职信
2014/06/21 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python