我正在尝试创建一个可以很好地解析日志文件的结构。我首先尝试将字典设置为类对象,但这不起作用,因为我将它们设为类属性。
我现在正在尝试以下方法来设置我的结构:
#!/usr/bin/python
class Test:
def __init__(self):
__tBin = {'80':0, '70':0, '60':0, '50':0,'40':0}
__pBin = {}
__results = list()
info = {'tBin' : __tBin.copy(),
'pBin' : __pBin.copy(),
'results': __results}
self.writeBuffer = list()
self.errorBuffer = list()
self.__tests = {'test1' : info.copy(),
'test2' : info.copy(),
'test3' : info.copy()}
def test(self):
self.__tests['test1']['tBin']['80'] += 1
self.__tests['test2']['tBin']['80'] += 1
self.__tests['test3']['tBin']['80'] += 1
print "test1: " + str(self.__tests['test1']['tBin']['80'])
print "test2: " + str(self.__tests['test2']['tBin']['80'])
print "test3: " + str(self.__tests['test3']['tBin']['80'])
Test().test()
我的目标是创建两个字典对象(__tBin 和 __pBin)并为每个测试制作它们的副本(即 test1 test2 test3...)。但是,当我觉得我明确地复制它们时,我发现 test1、test2 和 test3 仍然共享相同的值。上面的代码还包括我如何测试我想要完成的事情。
虽然我希望看到 1、1、1 被打印出来,但我看到了 3、3、3,但我不知道为什么,尤其是当我在字典上明确执行“copy()”时。
我在 Python 2.7.4