<p>我正面临一个特殊的问题。我将在下面简要描述
假设我有这段代码-</p>
<pre><code>class MyClass:
__postBodies = []
.
.
.
for the_file in os.listdir("/dir/path/to/file"):
file_path = os.path.join(folder, the_file)
params = self.__parseFileAsText(str(file_path)) #reads the file and gets some parsed data back
dictData = {'file':str(file_path), 'body':params}
self.__postBodies.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(dictData)
print self.__postBodies
dictData = None
params = None
</code></pre>
<p>问题是,当我每次为不同的文件打印params和dictData时,它有不同的值(这是正确的),但是一旦发生了append,并且我打印了\uuu postBodies,就会发生一件奇怪的事情。如果有电子文件,假设A,B,C,那么</p>
<blockquote>
<p>first time __postBodies has the content = [{'body':{A dict with some
data related to file A}, 'file':'path/of/A'}]</p>
<p>second time it becomes = [{'body':{A dict with some data relaed to
file B}, 'file':'path/of/A'}, {'body':{A dict with some data relaed to
file B}, 'file':'path/of/B'}]</p>
<p>AND third time = [{'body':{A dict with some data relaed to file C},
'file':'path/of/A'}, {'body':{A dict with some data relaed to file C},
'file':'path/of/B'}, {'body':{A dict with some data relaed to file C},
'file':'path/of/C'}]</p>
</blockquote>
<p>所以,你可以看到'file'键工作得很好。奇怪的是,“body”键被覆盖了所有最后一个附加的条目。在</p>
<p>我犯了什么错误吗?有什么我必须做的吗?请给我指个方向。在</p>
<p>对不起,如果我不太清楚。在</p>
<p>编辑--------------------</p>
<p>self.\uuParseFileAsText(str(file_path))调用是一个dict,我将它作为“body”插入dictData中。在</p>
<p>第二版-----------------------------------</p>
<p>正如您所问的,这是代码,但是我检查了params=self.\uuParseFileAsText(str(file_path))调用每次都返回diff dict。在</p>
^{pr2}$