我想解决的问题如下:
我有一个地图列表,每个地图都有特定的值,这是一个代表python代码的字符串。在这个python代码中,初始化了一个列表,我需要为地图列表中的每个条目提取该列表。
我尝试通过循环遍历列表并在每次迭代中提取包含python代码的字符串来解决此问题。这段代码我每次稍微编辑一次,以删除不相关的部分,并使其成为一个函数返回我需要的列表。一旦代码被编辑,它就被写入一个临时的python文件,我用它来导入返回我需要的列表的函数。
现在我遇到的问题如下:第一次从临时代码导入函数后,函数在再次调用“import”时似乎没有更新自身。我的代码的本质可以写成如下:
for map in list_of_maps:
temp_file = open("temp.py", "w")
code = map['key']
#remove unneeded parts from code string
...
temp_file.write("def getList():")
for line in code.splitlines():
temp_file.write("\t" + line)
temp_file.close()
from temp import getList
print getList()
所以看来,一旦我第一次调用“来自temp import getList”,这个函数就会被修复,并且在下一次迭代时不再更新。有没有人知道确保函数更新的方法,即覆盖以前的定义?谢谢你的帮助!