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计数排序和基数排序算法实例
Apr 25 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
python实现多线程的两种方式
May 22 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
wxPython实现文本框基础组件
Nov 18 Python
python实现PCA降维的示例详解
Feb 24 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
浅谈Python 函数式编程
Jun 20 Python
Python Matplotlib库实现画局部图
Nov 17 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中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
python选择排序算法的实现代码
2013/11/21 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
python做反被爬保护的方法
2019/07/01 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
python加载自定义词典实例
2019/12/06 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
机电一体化专业推荐信
2013/12/03 职场文书
经贸日语专业个人求职信范文
2013/12/28 职场文书
安全教育心得体会
2013/12/29 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
MySQL系列之三 基础篇
2021/07/02 MySQL