我有一个奇怪的问题,这是我尝试解释:
我正在创建一个程序,打开一个txt文件,然后使用以下命令linecache.getline(path,number)读取该文件的一行,在函数完成后,我使用commmand 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()
答案 0 :(得分:5)
return
语句之后将不再执行任何操作。如果您想致电clearcache
,则需要在return
声明之前调用它。
此外,作为附注,您的del
语句也不会做任何事情,即使它们被放置在return
之前。 del
实际上只是递减gc中的引用计数器,这将在解释器退出函数作用域时发生。