当前位置:主页 > python教程 > Python对象属性自动更新操作示例

Python对象属性自动更新的实现方法代码

发布:2020-01-31 08:34:57 90


给大家整理了Python相关的编程文章,网友郝文滨根据主题投稿了本篇教程内容,涉及到Python、对象属性、自动更新、Python对象属性自动更新操作示例相关内容,已被895网友关注,涉猎到的知识点内容可以在下方电子书获得。

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)

代码的执行结果如下:

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

两个结果一致!其实,这种类似的设计中我们大多时候是希望有一个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())

程序的执行结果如下:

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

这样的改进方式是可行的,但是却总觉得有点不方便。因为总体上的实现并没有体现出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程序设计有所帮助。


参考资料

相关文章

  • python实现定时任务的八种方式总结

    发布:2023-03-04

    在日常工作中,我们常常会用到需要周期性执行的任务,下面这篇文章主要给大家介绍了关于python实现定时任务的八种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下


  • python实现简易连点器

    发布:2023-04-28

    本文主要介绍了python实现简易连点器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • python字典set方法的特殊方法

    发布:2019-11-19

    python字典有set方法,set跟dict一样是key的集合,不可重复;创建一个set集合,需要提供一个list作为输入集合;不可存储可变的数据类型作为key值,内部存储原理跟dict一样,只是没有value罢了 。


  • Python实现极限车神游戏的示例代码

    发布:2023-04-11

    今天小编要为大家介绍一款小编自己用Python代码码出来的赛车风格的打字小游戏,不仅能游戏还能学到很多不同类型的编程代码关键字的语言,需要的可以参考一下


  • Python实现改变与矩形橡胶的线条的颜色代码示例

    Python实现改变与矩形橡胶的线条的颜色代码示例

    发布:2022-10-17

    给大家整理了关于Python的教程,这篇文章主要介绍了Python实现改变与矩形橡胶的线条的颜色代码示例,具有一定借鉴价值,需要的朋友可以参考下


  • python 模拟登录豆瓣6.0实例效果

    发布:2020-03-09

    这篇文章主要介绍了python模拟豆瓣登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • 介绍Python生成随机数的几种方法

    发布:2020-03-12

    这篇文章主要介绍了Python简单生成随机数的方法,结合实例形式分析了Python基于random模块生成随机数的相关操作技巧,需要的朋友可以参考下


  • python3+PyQt5 自定义窗口部件:使用窗口部件样式表的方法

    发布:2021-04-26

    今天小编就为大家分享一篇python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


网友讨论