我正在处理一个需要对locals()
进行操作的脚本,但无法从中删除值。我已经尝试过locals().pop(key)
和del locals()[key]
,但是都行不通。
例如:
def locals_test():
a, b = 1, 2
locals().pop('a')
del locals()['b']
return locals()
def dict_test():
test = {'a':1, 'b':2}
test.pop('a')
del test['b']
return test
print(locals_test()) # --> {'a':1, 'b':2}
print(dict_test()) # --> {}
我正在尝试在dict_test()
中复制locals_test()
的行为,但尚未找到解决方案。有谁知道如何解决这个问题?
答案 0 :(得分:2)
locals()
返回一个字典,该字典是局部变量的副本。更改副本不会删除该变量。工作方式:
def locals_test():
a, b = 1, 2
del a
del b
return locals()
一般建议:像这样与本地人和全球人玩耍通常是XY问题的征兆。最好使用值字典,这样就不会受到其余局部变量的污染。