Python продолжает ссылаться на устаревшие переменные

У меня какая-то странная проблема, вот моя попытка объяснения:

В настоящее время я делаю программу, которая открывает текстовый файл и затем читает строку для этого файла, используя следующую команду 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()

1 ответ

Решение

Ничего после return заявление когда-либо будет выполнено. Если вы хотите позвонить clearcacheВам нужно позвонить до return заявление.

Кроме того, как примечание, ваш del заявления на самом деле ничего не сделают, даже если они были помещены перед return, del фактически просто уменьшает счетчик ссылок в gc, что произойдет, когда интерпретатор все равно выйдет из области действия функции.

Другие вопросы по тегам