【问题标题】:Python function returns different return values in console vs. in scriptPython 函数在控制台和脚本中返回不同的返回值
【发布时间】:2020-12-17 21:22:33
【问题描述】:

我正在尝试清理我的代码。我将一个非常简单的整数运算放入一个函数中。如果我执行函数定义并在控制台中调用,它工作正常。如果我导入函数 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。

我做错了什么?

【问题讨论】:

  • 我无法重现该问题。
  • 我没有使用Pycharm,我只是把第二段代码放在另一个脚本文件中并用python scriptname.py运行它
  • 您确定是从您认为的文件中导入的吗?如果你在函数中添加一个打印行,你会看到那个输出吗?
  • 我试过了。不,我没有看到任何印刷品!该函数似乎正在执行,但没有打印任何内容。奇怪......我 99.99% 确信在这台机器上的其他任何地方都不可能有任何其他模块“预处理”或函数“calculate_absolute_week_span”
  • 那么,PyCharm 实际上在做什么?它没有正确执行函数(显然),而是返回了一些返回值。 (不正确的)返回值可以被复制..它不仅仅是内存中任何地方的随机

标签: python import pycharm integer-overflow


【解决方案1】:

通过重启机器解决...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2021-04-03
    • 2015-08-22
    相关资源
    最近更新 更多