首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >私下更新字典?

私下更新字典?
EN

Stack Overflow用户
提问于 2019-05-27 04:12:05
回答 2查看 57关注 0票数 -2

我有一个接收一些数据的类对象。基于一个条件,我需要更改该数据,但仅在该条件下。我遇到的问题是,当我调用dict.update()时,它也会更新原始变量。因此,随后的请求进入,现在可以说,原始变量被“污染”了,并且使用了它不应该具有的覆盖信息。

假设字典是这样的:

代码语言:javascript
复制
my_attributes = {"test": True}

和一些类似这样的逻辑:

代码语言:javascript
复制
class MyClass(object):

    def __init__(self, attributes):
        if my_condition():
            attributes.update({"test": False})

最终结果:

代码语言:javascript
复制
>>> my_attributes
{'test': False}

因此,下次使用MyClass时,这些根属性仍然会被覆盖。

我似乎已经通过重新定义attributes绕过了这个问题

代码语言:javascript
复制
class MyClass(object):

    def __init__(self, attributes):
        if my_condition():
            attributes = {}
            attributes.update(my_attributes)
            attributes.update({"test": False})

这似乎绕过了问题,但我不完全确定这是一个很好的解决方案,甚至是正确的解决方案。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56317027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档