Функция Python возвращает разные возвращаемые значения в консоли и в скрипте

#python #import #pycharm #integer-overflow

#python #импорт #pycharm #целое число-переполнение

Вопрос:

Я пытаюсь очистить свой код. Я ввел в функцию очень простую целочисленную операцию. Если я выполняю определение функции и вызываю в консоли, она работает нормально. Если я импортирую функцию def и запускаю в скрипте, она завершается с ошибкой (выглядит как целое число с превышением / понижением, но я не понимаю, почему)

Вот что работает. Я выполняю следующее в консоли

 def calculate_absolute_week_span(first_week, first_year, last_week, last_year):
  start = 52 * (first_year - 1900)   first_week
  end = 52 * (last_year - 1900)   last_week
  return start, end

training_start, training_end = calculate_absolute_week_span(1, 2010, 34, 2018)
 

Вывод: training_start: 5721

Теперь я запускаю тот же код, что и скрипт (PyCharm).

 from preprocessing import calculate_absolute_week_span
training_start, training_end = calculate_absolute_week_span(1, 2010, 34, 2018)
 

Вывод на этот раз: training_start: -62556

Аналогично, training_end отлично работает в первом примере и возвращает 6170, где я вижу -61426 в нижнем регистре.

Что я делаю не так?

Комментарии:

1. Я не могу воспроизвести проблему.

2. Я не использовал Pycharm, я просто поместил второй блок кода в другой файл сценария и запустил его с python scriptname.py

3. Вы уверены, что он импортирует из файла, который вы считаете? Если вы добавите строку печати в функцию, увидите ли вы этот результат?

4. Я пробовал. Нет, я ничего не вижу напечатанного! Функция, похоже, выполняется, но ничего не напечатано. Странно… Я на 99,99% уверен, что нигде больше на этом компьютере не может быть никакого другого модуля «предварительная обработка» или функции «calculate_absolute_week_span»

5. Итак, что же на самом деле делает PyCharm? Он не выполняет функцию должным образом (очевидно), но возвращает некоторое возвращаемое значение. (Неправильные) возвращаемые значения могут быть воспроизведены.. это не просто случайное в любом месте памяти

Ответ №1:

Решается путем перезагрузки компьютера…