python3.x从pi还原变量

2024-10-03 19:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字典里有几十个变量。如果某些条件为真,我需要恢复所有这些变量(所有不同的类型),使用与dict键相同的名称。你知道吗

我简化了代码以指出问题所在。例如,其中一个键是“ref10\u 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可以工作,但是如果变量是以前定义的,它不会覆盖它。如何让它重新定义一个变量,或者有更好的方法来构造这个功能? 谢谢。你知道吗


Tags: pathkeyimport类型data字典定义main
1条回答
网友
1楼 · 发布于 2024-10-03 19:28:24

与其篡改globals(这是不合法的和非语法的),您只需将变量作为关键字参数(“kwargs”)传递给另一个函数:

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

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

这是简单,直观,和Python。你知道吗

相关问题 更多 >