我真的对这三种方法感到困惑
setattr()
__setattr__
obj.x = 10
我有这个测试课
class Test(object):
def __init__(self):
self.__dict__['x'] = 99
b = Test()
#setattr(b,'x',10)
#b.x = 10
现在我有两个问题
bx 转换为
b.x = 10 --> b.__setattr__(x,10) --> b.__dict__['x'] = 10
并且 setattr(b,'x',10) 也转换为
setattr(b,'x',10) --> b.__setattr__(x,10) --> b.__dict__['x'] = 10
那么为什么我们使用一个而不是另一个
- 这是最低级别的功能,因此无论变量的值如何分配,但我的值不会使用
b.x
orsttattr
或__setattr