python中重载__setattr__引起__dict__变化

361次阅读
没有评论
python中重载__setattr__引起__dict__变化

python中重载__setattr__引起__dict__变化

在程序中修改某一部分会影响结果的改变,这是因为局部的改变的波动到了整体。setattr函数则是因为属性的改变才引起了它的运行,我们可以把setattr函数看作是检验属性变化的一种工具,因为一旦属性有变化,setattr函数是会自动发挥作用的。下面我们从它的说明等几个方面,用实例讲解重载引起__dict__的变化。

1.说明

setattr函数和getattr函数是对应的。一个设置对象的属性值,一个获取对象属性值。

2.参数

object — 对象。

name — 字符串,对象属性。

value — 属性值。

3.返回值

无。

4.实例

class Fun:
    def __init__(self):
        self.name = "Liu"
        self.age = 12
        self.male = True
        
    def __setattr__(self, key, value):
        print("*"*50)
        print("setting:{},  with:{}".format(key[], value))
        print("current __dict__ : {}".format(self.__dict__))
        # 属性注册
        self.__dict__[key] = value
fun = Fun()

由于每次类实例进行属性赋值时都会调用__setattr__(),所以可以重载__setattr__()方法,来动态的观察每次实例属性赋值时__dict__()的变化。Fun类重载了__setattr__()方法,并且将实例的属性和属性值作为__dict__的键-值对。

以上就是我们对于setattr函数的内容介绍,从中我们可以看出,利用它自动运行的特性,可以检测dict属性的变化。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2021-05-13发表,共计825字。
新手QQ群:570568346,欢迎进群讨论 Python51学习