У меня возникли проблемы с изменением значения класса во время выполнения, а затем создания его экземпляра в виде объекта, затем сохранения этого объекта внутри другого класса и помещения его в словарь Python.
Вот небольшой фрагмент кода, который я написал для иллюстрации проблемы:
import unittest
class cls1(object):
def __init__(self, obj):
self.obj = obj
class cls2(object):
def __init__(self):
self.var = 1
class Testdict(unittest.TestCase):
def __init__(self):
self.objs = dict()
def runTest(self):
obj2 = cls2()
obj1 = cls1(cls2())
self.objs["test1"] = obj1
self.assertEqual(self.objs["test1"].obj.var, 1)
cls2.var = 2
self.assertEqual(cls2.var, 2)
obj1 = cls1(cls2())
self.objs["test2"] = obj1
self.assertEqual(self.objs["test1"].obj.var, 1)
self.assertEqual(self.objs["test2"].obj.var, 2)
if __name__ == "__main__":
d = Testdict()
d.runTest()
Почему бы cls2 не создать экземпляр с его var равным 2?
Надеюсь, в этом вопросе есть смысл.