gpt4 book ai didi

python 3.x 从pickle恢复变量

转载 作者:行者123 更新时间:2023-12-02 11:37:17 25 4
gpt4 key购买 nike

我在 pickle 的字典中有几十个变量。如果某些条件成立,我需要恢复所有这些变量(所有不同类型),其名称与字典的键相同。

我简化了代码来指出问题。例如,键之一是“ref10_data”。如果变量在函数的其他地方定义,它不会被覆盖,但我希望它被覆盖。

import _pickle as pickle
from numpy import max

def main():
processing_path = '/data/common/PROBSEV_DATA/processing/'
ref10_data = 0
restore_dict = pickle.load(open(processing_path + 'cc_rt_prob_svr.out','rb'))

for key in restore_dict:
globals()[key] = restore_dict[key]

print(max(ref10_data))

if __name__ == '__main__':
main()

'0' 是打印的内容。这个question/answer有点有效,但它不会覆盖先前定义的变量。如何让它重新定义变量,或者是否有更好的方法来构造此功能?谢谢。

最佳答案

您可以简单地将变量作为关键字参数(“kwargs”)传递给另一个函数,而不是篡改全局变量(这既不优雅也不Pythonic):

def foo(ref10_data, another_var, yet_another_var):
print(max(ref10_data))

def main():
...
restore_dict = pickle.load(...)
foo(**restore_dict)

这很简单、直观并且具有 Python 风格。

关于python 3.x 从pickle恢复变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com