Python教程

python __setattr__ __getattr__

本文主要是介绍python __setattr__ __getattr__,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
class A:
    def __init__(self,width,heigth):
        self.width = width
        self.heigth = heigth
    def __setattr__(self,name, value):
        print("----set %s attribute" %name)
        if name == "size":
            print("controll sieze attribute")
            self.width = value
            # print(self.width)
        else:
            self.__dict__[name] = value
    def __getattr__(self,name):
        print("---get %s attribute " %name)


a = A(3,4)
a.size = 100
print(a.width)
print(a.__dict__)
----set width attribute
----set heigth attribute
----set size attribute
controll sieze attribute
----set width attribute
100
请按任意键继续. . .

__getattribute__(self, name) : 当程序访问对象的name属性时会自动调用

__getattr__(self,name) : 当程序访问对象的name属性且改属性不存在时被自动调用

__setattr__(self,name): 当程序对对象的name属性赋值的时候被自动调用

__delattr__(self, name) :当程序删除对象的name属性的时候被自动调用

这篇关于python __setattr__ __getattr__的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!