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复制目录结构脚本代码分享
Mar 06 Python
Python的Django框架中自定义模版标签的示例
Jul 20 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
Python守护线程用法实例
Jun 23 Python
Django实现快速分页的方法实例
Oct 22 Python
python3.x上post发送json数据
Mar 04 Python
python3.6的venv模块使用详解
Aug 01 Python
python实现自动登录
Sep 17 Python
对python文件读写的缓冲行为详解
Feb 13 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
Django如何使用redis作为缓存
May 21 Python
详细分析Python垃圾回收机制
Jul 01 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中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
PHP链表操作简单示例
2016/10/15 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
Python collections模块实例讲解
2014/04/07 Python
python处理html转义字符的方法详解
2016/07/01 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
python爬虫中多线程的使用详解
2019/09/23 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
Python高并发和多线程有什么关系
2020/11/14 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
最新创业融资计划书
2014/01/19 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
信访维稳工作汇报
2014/10/27 职场文书
行风评议整改报告
2014/11/06 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
德劲DE1105机评
2022/04/05 无线电