从文件内部循环导入函数,并在每次迭代时更新函数

时间:2017-10-24 15:19:08

标签: python function import

我想解决的问题如下:

我有一个地图列表,每个地图都有特定的值,这是一个代表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”,这个函数就会被修复,并且在下一次迭代时不再更新。有没有人知道确保函数更新的方法,即覆盖以前的定义?谢谢你的帮助!

0 个答案:

没有答案