0

我有一个奇怪的问题,这是我的解释尝试:

我目前正在制作一个程序,它打开一个 txt 文件,然后使用以下命令 linecache.getline(path,number) 为该文件读取一行,在函数完成后,我使用命令 linecache.clearcache。

如果我随后更改文本文件中的某些内容,它会不断返回预先更改的行。

以下是我正在使用的代码(我知道它不是很漂亮)

def SR(Path,LineNumber):    
    returns = lc.getline(Path,LineNumber)      
    x = np.array([])
    y = np.array([])
    words = returns.split()
    for word in words:
        x = np.append([x],[word])

    for i in range(len(x)):
        t = float(x[i])
        y = np.append([y],[t])
    return y
    del x
    del y
    del t
    del words
    lc.clearcache()
4

1 回答 1

5

语句之后的return任何内容都不会被执行。如果你想调用,你需要在语句clearcache之前调用它。return

另外,作为旁注,您的del语句也不会真正做任何事情,即使它们放在return. del实际上只是减少了 gc 中的引用计数器,这将在解释器退出函数范围时发生。

于 2014-03-31T14:26:00.400 回答