是否有Python方法以自己的名义添加/更新dict元素?
例如:
:diffget
相反,我希望
error = "Some error"
response['error'] = error
response.push(error)
将执行上述等效项,即push()
本身名称error
加response
。我有一个合适的方案,比编写一大块代码更方便。
答案 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
希望它有所帮助。