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和MD5实现网站挂马检测程序
Mar 13 Python
分享一个常用的Python模拟登陆类
Mar 29 Python
pymssql数据库操作MSSQL2005实例分析
May 25 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
定制FileField中的上传文件名称实例
Aug 23 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
Python argparse模块使用方法解析
Feb 20 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
用python自动生成日历
Apr 24 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 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对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
浅谈js中的闭包
2015/03/16 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
整理Python最基本的操作字典的方法
2015/04/24 Python
Python读写docx文件的方法
2018/05/08 Python
Django 请求Request的具体使用方法
2019/11/11 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
python 读取二进制 显示图片案例
2020/04/24 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
一夜的工作教学反思
2014/02/08 职场文书
勾股定理课后反思
2014/04/26 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
Golang 并发编程 SingleFlight模式
2022/04/26 Golang