Python对象属性自动更新操作示例

 更新时间:2018年06月15日 11:52:23   作者:grey_csdn  
这篇文章主要介绍了Python对象属性自动更新操作,结合实例形式对比分析了Python对象属性自动更新的原理,并改进了属性互联操作实现方法,需要的朋友可以参考下

本文实例讲述了Python对象属性自动更新操作。分享给大家供大家参考,具体如下:

在软件设计中会遇到这样的问题:有些属性之间有相互关联。这样,其中的一个属性变化的时候其他的属性也应该跟随变化。

先看一段示例代码:

# -*- coding:utf-8 -*-
#!python3
class DemoClss:
  def __init__(self,val1,val2):
    self.val1= val1
    self.val2= val2
    self.sum= self.val1 + self.val2
obj = DemoClss(123,234)
print(obj.sum)
obj.val1 = 321
print(obj.sum)

代码的执行结果如下:

两个结果一致!其实,这种类似的设计中我们大多时候是希望有一个sum属性跟随者两个数值能够自动变化。但是,上面的这种方式显然是不行的,因为这种设计的生效只能够是在初始化的时候生效。

那么,如果想要实现一个随时求和的方法我们该怎么做呢?其实,我们可以通过方法来实现!代码的改进如下:

# -*- coding:utf-8 -*-
#!python3
class DemoClss:
  def __init__(self,val1,val2):
    self.val1= val1
    self.val2= val2
  def sum(self):
    return self.val1 + self.val2
obj = DemoClss(123,234)
print(obj.sum())
obj.val1 = 321
print(obj.sum())

程序的执行结果如下:

这样的改进方式是可行的,但是却总觉得有点不方便。因为总体上的实现并没有体现出OOP的什么优势,说穿了这其实还是函数调用而已。那么,能不能改进一下呢?我们期望的又是一种什么样的效果呢?其实,我们需要的功能应该是一个初始化功能而方法功能的一个结合体,而这种类似功能的结合体是存在的,那就是特性。特性是一种看上去像方法的属性,每次引用都会执行相关的方法。如此,代码改进如下:

# -*- coding:utf-8 -*-
#!python3
class DemoClss:
  def __init__(self,val1,val2):
    self.val1= val1
    self.val2= val2
  @property
  def sum(self):
    return self.val1 + self.val2
obj = DemoClss(123,234)
print(obj.sum)
obj.val1 = 321
print(obj.sum)

程序执行结果如下:

这样就实现了关联属性的自动更新,看上去更加符合人们的正常思维了。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • python中@property和property函数常见使用方法示例

    python中@property和property函数常见使用方法示例

    这篇文章主要介绍了python中@property和property函数常见使用方法,结合实例形式分析了Python @property和property函数功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-10-10
  • Python调整数组形状如何实现

    Python调整数组形状如何实现

    这篇文章主要介绍了Python调整数组形状如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • python函数形参用法实例分析

    python函数形参用法实例分析

    这篇文章主要介绍了python函数形参用法,较为详细的讲述了Python函数形参的功能、定义及使用技巧,需要的朋友可以参考下
    2015-08-08
  • 使用python查找替换PowerPoint演示文稿中的文本

    使用python查找替换PowerPoint演示文稿中的文本

    演示文稿已成为商务会议、学术报告和教育培训中不可或缺的一部分,而PowerPoint演示文稿作为行业标准工具,更是承载着无数创意与信息的载体,本文将介绍如何使用Python来精确查找并替换PowerPoint演示文稿中的文本,需要的朋友可以参考下
    2024-07-07
  • python基础教程之while循环

    python基础教程之while循环

    这篇文章主要给大家介绍了关于python基础教程之while循环的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Python 中 f-Strings 的作用

    Python 中 f-Strings 的作用

    这篇文章主要介绍了Python 中 f-Strings 的作用, f-strings 是用来非常方便的格式化输出的,觉得它的使用方法无外乎就是 print(f'value = { value }',其实,f-strings 远超你的预期,今天来梳理一下它还能做那些很酷的事情
    2021-10-10
  • Python实现多项式拟合正弦函数详情

    Python实现多项式拟合正弦函数详情

    这篇文章主要介绍了Python实现多项式拟合正弦函数详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Django定时任务Django-crontab的使用详解

    Django定时任务Django-crontab的使用详解

    测试平台执行测试用例时,可以借助jenkins之类的CI/CD工具,也可以使用定时任务crontab,作为测试开发工程师,我们可能没有权限去操作服务器,那么我们就只能使用django-crontab,在指定时间循环执行测试用例,对定时任务Django-crontab的使用感兴趣的朋友一起看看吧
    2022-07-07
  • Python实现读取excel中的图片功能

    Python实现读取excel中的图片功能

    这篇文章主要介绍了如何利用Python实现读取Excel中的图片的功能,文中的实现步骤讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-01-01
  • 决策树剪枝算法的python实现方法详解

    决策树剪枝算法的python实现方法详解

    这篇文章主要介绍了决策树剪枝算法的python实现方法,结合实例形式较为详细的分析了决策树剪枝算法的概念、原理并结合实例形式分析了Python相关实现技巧,需要的朋友可以参考下
    2019-09-09

最新评论