Python以自​​己的名义添加元素到dict

时间:2015-11-09 09:46:27

标签: python python-2.7 python-3.x dictionary

是否有Python方法以自己的名义添加/更新dict元素?

例如:

:diffget

相反,我希望

error = "Some error" response['error'] = error

response.push(error)将执行上述等效项,即push()本身名称errorresponse。我有一个合适的方案,比编写一大块代码更方便。

2 个答案:

答案 0 :(得分:1)

这不是一个很好的方法,但你可以使用globals

>>> def updateDict(dict, value):
...     a = globals()[value]
...     dict[value] = a
... 
>>> response = {}
>>> error = "some error"
>>> updateDict(response, 'error')
>>> response
{'error': 'some error'}

我会认真考虑你是否需要这样做。这并不好,我怀疑它在各个模块中运行得很好(如果有的话)。

答案 1 :(得分:0)

抓取页面和使用类时遇到了类似的问题。所以在你的情况下,你可以做这样的事情:

class MyError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        name = self.value.lower().replace(" ", "_")
        return name

error = MyError("Some error")

response = {}    

response[error.__str__()] = error.value

希望它有所帮助。