Khi tôi đặt thuộc tính, getattr
kết quả là id
thay đổi giá trị id
. Khi tôi đặt phương thức, getattr
kết quả id
không thay đổi. Tại sao?Tại sao setattr hoạt động khác với các thuộc tính và phương thức?
class A (object):
a = 1
a = 42
print id(getattr(A, 'a'))
print id(a)
setattr(A, 'a', a)
print id(getattr(A, 'a'))
# Got:
# 36159832
# 36160840
# 36160840
class B (object):
def b(self):
return 1
b = lambda self: 42
print id(getattr(B, 'b'))
print id(b)
setattr(B, 'b', b)
print id(getattr(B, 'b'))
# Got:
# 140512684858496
# 140512684127608
# 140512684858496
Không có trong python 3 – Lol4t0