gpt4 book ai didi

python - 为什么变量名 "sum"导致错误 [Python]

转载 作者:行者123 更新时间:2023-11-28 20:20:08 24 4
gpt4 key购买 nike

您好,我为 Leetcode question 编写了以下代码

class Solution(object):
def addDigits(self, num):
"""
:type num: int
:rtype: int
"""
while(1):
if num in list( range(0,10) ):
return num

sum = sum( int(i) for i in str(num) )

num = sum

它产生了一个错误第 11 行:UnboundLocalError:赋值前引用的局部变量“sum”。它已通过将变量 sum 更改为 sum1 来修复。

sum 不在 list of illegal variable names (keywords) 中(第 2.3 节)。

那么为什么会出错呢?是不是当 python 看到 sum = sum(...) 时,python 开始将 sum 视为变量而忘记它是一个函数?

最佳答案

您绝对可以将变量称为“sum”、“file”和“reduce”。如果你在全局范围内这样做,它就会真正起作用。例如:

In [6]: sum = sum(range(1,10))

总和将等于 45,一切都很好。 (尽管事实上您不能再使用函数 sum。)

但是当你试图在函数内部使用 this 时:解释器为函数内部定义的变量定义了它自己的范围。

In [2]: def f():
print type(sum)
sum = sum(range(1,10))
f()

您可能期望答案是“builtin_function_or_method”,但实际上您会得到与上述相同的错误。希望有人能更好地解释python解释器的细节。

关于python - 为什么变量名 "sum"导致错误 [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com