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装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
Python while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
python利用7z批量解压rar的实现
Aug 07 Python
python 接口实现 供第三方调用的例子
Aug 13 Python
关于python3中setup.py小概念解析
Aug 22 Python
python学生信息管理系统实现代码
Dec 17 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 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
自己动手做一个SQL解释器
2006/10/09 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
js给selected添加options的方法
2015/05/06 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
python读写文件write和flush的实现方式
2020/02/21 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
大学生优秀的自我评价分享
2013/10/22 职场文书
初中音乐教学反思
2014/01/12 职场文书
关于安全演讲稿
2014/05/09 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫