我有一个接收一些数据的类对象。基于一个条件,我需要更改该数据,但仅在该条件下。我遇到的问题是,当我调用dict.update()
时,它也会更新原始变量。因此,随后的请求进入,现在可以说,原始变量被“污染”了,并且使用了它不应该具有的覆盖信息。
假设字典是这样的:
my_attributes = {"test": True}
和一些类似这样的逻辑:
class MyClass(object):
def __init__(self, attributes):
if my_condition():
attributes.update({"test": False})
最终结果:
>>> my_attributes
{'test': False}
因此,下次使用MyClass
时,这些根属性仍然会被覆盖。
我似乎已经通过重新定义attributes
绕过了这个问题
class MyClass(object):
def __init__(self, attributes):
if my_condition():
attributes = {}
attributes.update(my_attributes)
attributes.update({"test": False})
这似乎绕过了问题,但我不完全确定这是一个很好的解决方案,甚至是正确的解决方案。
https://stackoverflow.com/questions/56317027
复制相似问题