Bất cứ ý tưởng nếu có một cách để làm cho đoạn mã sau để làm việcThay đổi lớp dụ bên trong một phương pháp dụ
class Test(object):
def __init__(self, var):
self.var = var
def changeme(self):
self = Test(3)
t = Test(1)
assert t.var == 1
t.changeme()
assert t.var == 3
là một cái gì đó giống như an toàn sau đây để sử dụng cho các đối tượng phức tạp hơn (như mô hình django, để nóng hoán đổi mục nhập db mà cá thể đang đề cập đến)
class Test(object):
def __init__(self, var):
self.var = var
def changeme(self):
new_instance = Test(3)
self.__dict__ = new_instance.__dict__
t = Test(1)
assert t.var == 1
t.changeme()
assert t.var == 3
Tại sao? Bạn rõ ràng muốn có một ví dụ mới, tại sao không chỉ tạo một trường hợp mới và ném cái này đi? Xin hãy giải thích cho chúng tôi. –