关于__setattr__魔法方法的问题
今天跟小甲鱼老师学到了__setattr__这个魔法方法,我自己理解了一下,不知道对不对,请老师指点:1.__setattr__ 方法本身就是存在的;
2. __setattr__(self, name, value) ,如果要使用这个方法,必须采用这种方式提供参数;
3. 我们在为对象属性赋值的时候,采取的是"对象.属性名 = 值" 的形式,实际上就是调用了 __setattr__(self, name, value) 魔术方法, 其中 ”对象=self ,属性名=name,值=value;
4.当我们想要重新改写__setattr__ 这个魔术方法时, 必须用def __setattr__(self, name, value): 的标准写法才可以。 你的理解非常准确,完全正确。__setattr__ 是 Python 中的一个特殊方法(也被称为“魔法方法”),用于在运行期间设置对象属性的值。当你以“对象.属性名 = 值”这种形式给对象属性赋值的时候,实际上就是调用了 __setattr__(self, name, value) 这个魔术方法,其中 self 表示对象自身,name 表示属性名,value 表示属性值。
如果你想覆盖(即重新定义) __setattr__ 这个魔法方法,可以像你说的那样,使用 def __setattr__(self, name, value): 的标准写法进行覆盖。覆盖后,Python 就会在你设置对象属性值时调用你自己定义的 __setattr__ 方法,而不是默认的魔法方法。 歌者文明清理员 发表于 2023-6-21 22:20
你的理解非常准确,完全正确。__setattr__ 是 Python 中的一个特殊方法(也被称为“魔法方法”),用于在运 ...
非常感谢您的指点。 wbzxz 发表于 2023-6-21 22:30
非常感谢您的指点。
不客气~
页:
[1]