关于魔法方法返回值的问题
>>> class C:def __getattr__(self, name):
print(1)
return super().__getattr__(name)
def __getattribute__(self, name):
print(2)
return super().__getattribute__(name)
def __setattr__(self, name, value):
print(3)
super().__setattr__(name, value)
def __delattr__(self, name):
print(4)
super().__delattr__(name)
>>> c = C()
>>> c.x
问一下这些方法为什么前两个要在最后加return 后两个就不用 前俩个是get属性值,需要返回给调用者数据
后倆属于设置属性值,不需要给谁传数据 获取值当然需要返回,可是设置值属性和删除值属性需要返回值吗?
当然不需要,它们只需要对元素进行操作就好。 set 和 delete是直接对内存操作了,设置数值或者销毁数值,
get就是从内存中获取值,不return就看不到获取的值 前两个做做用时获取属性,获取属性当然是要返回属性的值了,
后两个时设置属性的值和删除属性,就不需要返回值了
页:
[1]