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中使用sys模板和logging模块获取行号和函数名的方法
Apr 15 Python
Python中除法使用的注意事项
Aug 21 Python
Python网络编程 Python套接字编程
Sep 13 Python
深入浅析python with语句简介
Apr 11 Python
Django框架自定义session处理操作示例
May 27 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
基于Python实现的购物商城管理系统
Apr 27 Python
如何利用pygame实现打飞机小游戏
May 30 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
php 404错误页面实现代码
2009/06/22 PHP
PHP防盗链代码实例
2014/08/27 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
js arguments,jcallee caller用法总结
2013/11/30 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
Javascript中replace()小结
2015/09/30 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
详解python编译器和解释器的区别
2019/06/24 Python
python 一维二维插值实例
2020/04/22 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
实习销售业务员自我鉴定
2013/09/21 职场文书
工程采购员岗位职责
2014/03/09 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
2014年底个人工作总结
2015/03/10 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书