私はこれら3つの方法の間で本当に混乱しています
setattr()
__setattr__
obj.x = 10
私はこのテストクラスを持っています
class Test(object):
def __init__(self):
self.__dict__['x'] = 99
b = Test()
#setattr(b,'x',10)
#b.x = 10
今、私は2つの質問があります
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
またはsttattr
またはのいずれかで変更されません__setattr