我在运行时改变一个类的值,然后将它实例化为一个对象,然后将该对象存储在另一个类中并将其放入Python字典中。存储在字典中的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()
为什么被有它的变种等于2 CLS2不能实例?
我希望这个问题有道理。
请给出您的课程名称,以大写字母开头。我们阅读起来要容易得多。 – 2011-05-20 21:30:21
对不起,我通常编写符合pep8的代码,我只是试图写这个匆忙。 – disdanes 2011-05-23 14:41:43