【发布时间】: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