123Marchapril 发表于 2021-4-8 21:08:29

关于setattr的疑问

本帖最后由 123Marchapril 于 2021-4-8 21:25 编辑

重写__setattr__方法后,为避免进入死循环,一般会调用父类的__setattr__方法,那父类的__setattr__方法中的self是怎么接收参数的?
为什么返回父类的方法的时候是super().__setattr__(name,value)而不是super().__setattr__(self,name,value)?
@Twilight6    谢谢大家,谢谢大佬!

比如说,test是Test的实例化对象,那么test.ppr() = Test.ppr(test),这样我理解,super().__setattr__(name,value)中的super是父类,那setattr中的self是怎么接收参数的?

123Marchapril 发表于 2021-4-8 22:40:58

求求了,我真不懂

z5560636 发表于 2021-4-9 08:27:55

123Marchapril 发表于 2021-4-8 22:40
求求了,我真不懂

你把代码贴上来,

123Marchapril 发表于 2021-4-9 09:39:50

z5560636 发表于 2021-4-9 08:27
你把代码贴上来,

我的疑惑主要是为什么返回父类的方法的时候是super().__setattr__(name,value)而不是super().__setattr__(self,name,value)?

z5560636 发表于 2021-4-9 10:56:17

123Marchapril 发表于 2021-4-9 09:39
我的疑惑主要是为什么返回父类的方法的时候是super().__setattr__(name,value)而不是super().__setattr__ ...

Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :
页: [1]
查看完整版本: 关于setattr的疑问