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中mechanize库的简单使用示例
Jan 10 Python
Python中函数的用法实例教程
Sep 08 Python
浅析python中的分片与截断序列
Aug 09 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
Python画图高斯分布的示例
Jul 10 Python
python中字典按键或键值排序的实现代码
Aug 27 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 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
重置版游戏视频
2020/04/09 魔兽争霸
967 个函式
2006/10/09 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
应用化学专业本科生求职信
2013/09/29 职场文书
迟到检讨书5000字
2014/01/31 职场文书
社区母亲节活动记录
2014/03/06 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
Golang 并发编程 SingleFlight模式
2022/04/26 Golang
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android