擅长:python、mysql、java
<p>您的问题是<code>traitfile['words']</code>是一个列表,当您将它复制到<code>tall_knight.words</code>时,您复制的是对列表的引用,而不是列表中的值。因此,当您修改<code>tall_knight</code>中的列表时,也会修改<code>traitfile['words']</code>中的值。您可以通过使用<a href="https://docs.python.org/3/library/copy.html?highlight=copy%20copy#copy.copy" rel="nofollow noreferrer">^{<cd5>}</a>(或者<code>copy.deepcopy</code>,如果值可以嵌套),在对象中创建值的副本来解决此问题:</p>
<pre><code>import copy()
class Knight(object):
def __init__(self, traits):
for k, v in traits.items():
self.__setattr__(k, copy.copy(v))
</code></pre>